Java 三元运算符的自动类型转换

Java 三元运算符的自动类型转换牛客这题第一次做的时候我以为输出是 11 实际输出是 1 01 后来才知道三元操作符还有类型转换这一说 publicstatic String args Objecto1 true newInteger 1 newDouble 2 0 Objecto2 if true o2 newInteger 1 else o2 newDouble 2 0

牛客这题第一次做的时候我以为输出是 1 1,实际输出是1.0 1
后来才知道三元操作符还有类型转换这一说

public static void main(String[] args) { 
    Object o1 = true ? new Integer(1) : new Double(2.0); Object o2; if (true) { 
    o2 = new Integer(1); } else { 
    o2 = new Double(2.0); } System.out.print(o1); System.out.print(" "); System.out.print(o2); } 

自动类型转换

1.如果三元操作符的左边明确写了表达式结果类型,那么右边的值会按照该类型转换

double a = true ? 54 : 100; System.out.println(a); //输出为54.0 

2.如果没有显示规定表达式结果类型,则两个操作数按照类型大的范围转换

System.out.println(false ? 54.0 : 100); //输出为100.0 
//但也有个小疑惑 char a = 'a'; int i= 96; System.out.println(true ? 'a' : i); //输出为97 //但下面这样写输出为'a' System.out.println(true ? 'a' : 100); 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/178592.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午4:56
下一篇 2026年3月26日 下午4:56


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号