Bib*_*ire 4 java conditional ternary-operator
我也跟着教程提供了这里,并在线路:
boolean t1 = false?false:true?false:true?false:true;
Run Code Online (Sandbox Code Playgroud)
t1的最终值为false.但我认为它是真的.first false给出了true,而true给出了false,这最终真的给了我是对的吗?不,我错了.请告诉我如何在java中评估三元表达式?
当编译器找到一个?
字符时,它会查找相应的字符:
.前面的表达式?
是三元条件运算符的第一个操作数,表示条件.
?
和之间的表达式:
是运算符的第二个操作数,如果条件为真,则返回其值.
后面的表达式:
是运算符的第三个操作数,如果条件为false,则返回其值.
boolean t1 = false ? false : true?false:true?false:true;
first second third
operand operand operand
Run Code Online (Sandbox Code Playgroud)
由于第一个操作数为false,结果是第三个操作数的值true?false:true?false:true
,所以让我们评估它:
true ? false : true?false:true;
first second third
operand operand operand
Run Code Online (Sandbox Code Playgroud)
由于第一个操作数为true,因此结果是第二个操作数的值 - false
.
顺便说一句,第三个操作数的true?false:true
值也是false
,所以x?false:true?false:true
无论值是多少都返回false x
.