Desc:compareCharはtrueまたはfalseを返します。 trueの場合、ボタンの値を設定し、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("§") :
三項演算子? :
は値を返すことです。フロー制御にif
を使用する場合は使用しないでください。
if (compareChar(curChar, toChar("0"))) getButtons().get(i).setText("§");
十分に機能します。
https://docs.Oracle.com/javase/tutorial/Java/nutsandbolts/operators.html
構文は次のとおりです。
"your condition"? "step if true":"step if condition fails"
(インラインif)in Javaは機能しません。正しい構文は次の例のとおりです。
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("§");
ケースには戻り値がありません。
getButtons().get(i).setText("§");
In-line-ifが3項演算である場合、すべての3項演算には戻り値が必要です。その変数は無効である可能性が高く、何も返さず、変数に戻りません。例:
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("§"); }
また、中括弧を使用して、コードを読みやすくし、スコープを宣言する必要があります。
cond? statementA: statementB
等しい:
if (cond)
statementA
else
statementB
あなたの場合、すべての「if」を削除するだけです。 ?:の代わりにif-elseを完全に使用する場合。一緒に混ぜないでください。
これは(条件)ですか? Trueステートメント:Falseステートメント
「if」を省きます