内联if语句java,为什么不工作

Eri*_*ica 16 java if-statement inline

描述:compareChar返回true或false.如果为true,则设置button的值,如果false则不执行任何操作.

我想使用:如果compareChar(curChar,toChar("0"))?.getButtons()得到(I).setText( "§");

netbeans说:')'除了':'除外

我试过这些组合:

if compareChar(curChar, toChar("0")) ? getButtons().get(i).setText("§");
Run Code Online (Sandbox Code Playgroud)

谢谢

Sac*_*ach 63

语法如下所示:

"your condition"? "step if true":"step if condition fails"
Run Code Online (Sandbox Code Playgroud)

  • 这是最容易理解的答案.不错的工作. (3认同)

小智 22

如果你使用'if'语句,java中的(inline if)将无法工作..正确的语法在以下示例中:

int y = (c == 19) ? 7 : 11 ; 
Run Code Online (Sandbox Code Playgroud)

要么

String y = (s > 120) ? "Slow Down" : "Safe";
System.out.println(y);
Run Code Online (Sandbox Code Playgroud)

你可以看到变量Y的类型与返回值相同......

在你的情况下,最好使用普通的if语句不是内联的,如果它是在没有"?"的前一个答案中

if (compareChar(curChar, toChar("0"))) getButtons().get(i).setText("§");
Run Code Online (Sandbox Code Playgroud)


Gui*_*ume 18

三元运算符? :是返回一个值,当你想if用于流控制时不要使用它.

if (compareChar(curChar, toChar("0"))) getButtons().get(i).setText("§");
Run Code Online (Sandbox Code Playgroud)

会工作得很好.

http://java.about.com/b/2009/06/06/java-term-of-the-week-ternary-operator.htm