java 和 c++ 的三目运算符的区别
转载请注明出处:http://www.cnblogs.com/liangyongrui/p/6348001.html
以前很少用java,就知道java和c++差不多。
今天就踩了一个坑。
不吐糟,直接进正文。
看这种写法,把较小的数加1。
int a = 5, b = 6; b > a ? (a = 1) : b++;
众所周知,c++这样写是没问题的。
但是java就不行!
$ javac Solution.java Solution.java:14: error: not a statement b > a ? a++ : b++; ^ 1 error
上网查了资料才知道,
java的表达式规定只有以下四种
赋值表达式,
自增,
方法调用
对象创建表达式.
然后三目运算符 不对返回值进行以上处理的话,并不能构成表达式(not a statement)
就像这样 java也报错了。
int a = 5, b = 6; a;
$ javac Solution.java Solution.java:14: error: not a statement a; ^ 1 error