【发布时间】:2014-04-20 18:51:22
【问题描述】:
假设我们有以下 if 语句:
int a = 1;
int b = 2;
if(a < b) {
System.out.println("A is less than B!");
}
else {
System.out.println("A is greater or equal to B!");
}
我一直在想,如果当 if 语句由每个子块(if 和 else 块)中的一行代码组成时,如果三元运算符替换 if 语句,那么为什么上面的例子不能用三元运算符写成这样呢?
(a < b) ? System.out.println("A is less than B!") : System.out.println("A is greater or equal to B!");
【问题讨论】:
-
因为 JLS 是这么说的:“第二个或第三个操作数表达式调用 void 方法是一个编译时错误。”跨度>
标签: java ternary-operator