Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
谁能解释第一个输出?(java运算符)_Java_Operator Keyword_Ternary - Fatal编程技术网

谁能解释第一个输出?(java运算符)

谁能解释第一个输出?(java运算符),java,operator-keyword,ternary,Java,Operator Keyword,Ternary,我不知道第一个输出是A。谁能解释?谢谢大家! 来自: 如果[条件?:运算符]的一个操作数是T类型,其中T是byte,short或char,而另一个操作数是int类型的常量表达式(§15.29),其值可在T类型中表示,那么条件表达式的类型是T alpha是一个char,0是一个int的常量表达式,该常量表达式可由char表示,因此条件表达式的结果是一个char System.out.println(trueExp ? alpha : 0); 这里,foo不是一个常量表达式,因此操作数将经过二进制

我不知道第一个输出是A。谁能解释?谢谢大家!

来自:

如果[条件?:运算符]的一个操作数是
T
类型,其中
T
byte
short
char
,而另一个操作数是
int
类型的常量表达式(§15.29),其值可在
T
类型中表示,那么条件表达式的类型是
T

alpha
是一个
char
0
是一个
int
的常量表达式,该常量表达式可由
char
表示,因此条件表达式的结果是一个
char

System.out.println(trueExp ? alpha : 0);
这里,
foo
不是一个常量表达式,因此操作数将经过二进制数字升级为
int
,因此它将打印
(int)alpha
65


如果要声明
final int foo
,它将再次打印
A

Josh Bloch和Neal Gafter在Java拼图中解释了这一点。第一个
println
中的表达式返回
alpha
。如果不是
alpha
的值,您还希望它打印什么?@FedericoklezCulloca大概是
65
,就像第二个一样。对不起。。。脑衰竭。
System.out.println(trueExp ? alpha : 0);
System.out.println(trueExp ? alpha : foo);