Java 为什么下面的代码打印为false?
谁能解释一下为什么下面的代码会打印Java 为什么下面的代码打印为false?,java,Java,谁能解释一下为什么下面的代码会打印false public class Test { public static void main(String[] args) { System.out.println(true?false:true == true?false:true); } } 由于第一个条件是true,它将打印false 编辑: 即使用三元运算符,基本上是一个简化的if if (true) { System.out.println
false
public class Test {
public static void main(String[] args) {
System.out.println(true?false:true == true?false:true);
}
}
由于第一个条件是
true
,它将打印false
编辑:
即使用三元运算符,基本上是一个简化的if
if (true) {
System.out.println(false);
} else {
if (true == true) {
System.out.println(false);
} else {
System.out.println(false);
}
System.out.println(true);
}
使用三元运算符,这可以简化为
System.out.println(true?false:true == true?false:true);
因此,上面的帖子使用了与true或false相同的操作。
true?false:true==true?false:true
从左到右求值,因此它等价于true?false:(true==true?false:true)
。由于true
是true
,第一个三元表达式返回打印输出的false
。这实际上是true?(false):(true==true?false:true)
我想你想要(true?false:true)==(true?false:true)
你想从这个问题中得出什么结论?是的,我刚刚看到我搞砸了,给我一点时间,我会用问题中的例子来修改它