为什么以下语句在C中合法但在Java中不合法?

Zab*_*han 0 c java ternary-operator

为什么以下语句在C中合法但在Java中不合法?

int k = 1;
(10 < 20) ? k++ : k--;
Run Code Online (Sandbox Code Playgroud)

fla*_*kes 5

这是因为在C中,可以通过添加分号将所有表达式转换为表达式语句;.

在Java中,并非所有表达式都可以用于表达式语句.它们必须是赋值表达式,使用postfix/prefix运算符,方法调用或新表达式.在这里查看更多

此外,Java中的三元运算符要求每个操作数都是非void表达式,并且必须分配返回的值.