三元运营商不在Android工作

oky*_*eni 3 java ternary-operator

我有一个让我困惑的简单问题.我试图在java中使用三元运算符.我是Android和java的新手.这段代码给了我错误:

amt < 0 ? lendBtn.setChecked(true) : lendBtn.setChecked(false);

"Syntax error on token "<", invalid AssignmentOperator"
Run Code Online (Sandbox Code Playgroud)

所以,我用if语句替换它,它完全有效:

if (amt < 0) { ... }
Run Code Online (Sandbox Code Playgroud)

这不是什么大问题,但有谁知道为什么?

Jon*_*eet 16

这与Android无关.您不能将条件表达式作为语句使用...而且第二个和第三个操作数也不能是void表达式.

你应该使用:

lendBtn.setChecked(amt < 0);
Run Code Online (Sandbox Code Playgroud)

......开始时更简单.