Desc: CompareChar renvoie true ou false . Si true, définit la valeur de button, si false ne fait rien.
J'essaie d'utiliser: If compareChar (curChar, toChar ("0"))? getButtons (). get (i) .setText ("§");
netbeans dit: ')' excepté ':' excepté
j'ai essayé ces combinaisons:
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("§") :
Je vous remercie
L'opérateur ternaire ? :
doit renvoyer une valeur, ne l'utilisez pas si vous souhaitez utiliser if
pour le contrôle de flux.
if (compareChar(curChar, toChar("0"))) getButtons().get(i).setText("§");
fonctionnerait assez bien.
http://Java.about.com/b/2009/06/06/Java-term-of-the-week-ternary-operator.htm
La syntaxe est indiquée ci-dessous:
"your condition"? "step if true":"step if condition fails"
(inline if) en Java ne fonctionnera pas si vous utilisez l'instruction 'if'. la syntaxe correcte est décrite dans l'exemple suivant:
int y = (c == 19) ? 7 : 11 ;
ou
String y = (s > 120) ? "Slow Down" : "Safe";
System.out.println(y);
comme vous pouvez voir le type de la variable Y est le même que la valeur de retour ...
dans votre cas, il est préférable d'utiliser l'instruction if normale, non en ligne si elle est dans la réponse précédente sans "?"
if (compareChar(curChar, toChar("0"))) getButtons().get(i).setText("§");
cond? statementA: statementB
Égal à:
if (cond)
statementA
else
statementB
Pour votre cas, vous pouvez simplement supprimer tous les "si". Si vous utilisez totalement if-else au lieu de?:. Ne les mélangez pas ensemble.
Vos cas n'ont pas de valeur de retour.
getButtons().get(i).setText("§");
In-line-if est une opération ternaire. Toutes les opérations ternaires doivent avoir une valeur de retour. Cette variable est probablement nulle et ne renvoie rien et elle ne retourne pas à une variable. Exemple:
int i = 40;
String value = (i < 20) ? "it is too low" : "that is larger than 20";
pour votre cas, vous avez juste besoin d'une déclaration if.
if (compareChar(curChar, toChar("0"))) { getButtons().get(i).setText("§"); }
Notez également que vous devez utiliser des accolades pour rendre le code plus lisible et déclarer la portée.
Cela devrait être (Condition)? Déclaration vraie: déclaration fausse
Laissez le "si"