说明: compareChar返回true或false。 如果为true则设置button的值,如果false则不设置任何内容。
我正在尝试使用:
if compareChar(curChar, toChar("0")) ? getButtons().get(i).setText("§");
netbeans说:
')'除外 ':'例外
我试过这些组合:
if compareChar(curChar, toChar("0")) ? getButtons().get(i).setText("§");
if compareChar(curChar, toChar("0")) ? getButtons().get(i).setText("§") : ;
if compareChar(curChar, toChar("0")) ? getButtons().get(i).setText("§") :
if (compareChar(curChar, toChar("0"))) ? getButtons().get(i).setText("§");
if (compareChar(curChar, toChar("0"))) ? getButtons().get(i).setText("§") : ;
if (compareChar(curChar, toChar("0"))) ? getButtons().get(i).setText("§") :
答案 0 :(得分:54)
语法如下所示:
"your condition"? "step if true":"step if condition fails"
答案 1 :(得分:21)
(inline if)将无效。正确的语法在以下示例中:
int y = (c == 19) ? 7 : 11 ;
或
String y = (s > 120) ? "Slow Down" : "Safe";
System.out.println(y);
你可以看到变量Y的类型与返回值相同......
在你的情况下,最好使用普通的if语句不是内联的,如果它在没有“?”的前一个答案中那么
if (compareChar(curChar, toChar("0"))) getButtons().get(i).setText("§");
答案 2 :(得分:18)
三元运算符? :
将返回一个值,当您想使用if
进行流量控制时,请不要使用它。
if (compareChar(curChar, toChar("0"))) getButtons().get(i).setText("§");
可以运作得很好。
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html
答案 3 :(得分:1)
cond? statementA: statementB
等于:
if (cond)
statementA
else
statementB
对于您的情况,您可以删除所有“if”。如果你完全使用if-else而不是?:。不要将它们混合在一起。
答案 4 :(得分:1)
您的案件没有返回值。
getButtons().get(i).setText("§");
In-line-if是三元运算,所有三元运算必须具有返回值。该变量可能是无效的,并且不会返回任何内容,也不会返回变量。例如:
int i = 40;
String value = (i < 20) ? "it is too low" : "that is larger than 20";
对于你的情况,你只需要一个if语句。
if (compareChar(curChar, toChar("0"))) { getButtons().get(i).setText("§"); }
另外请注意,您应该使用花括号使代码更具可读性并声明范围。
答案 5 :(得分:0)
这应该是 (条件)?真实陈述:虚假陈述
省略&#34; if&#34;