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.
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |