2013-03-17 5 views
10

Desc: compareChar restituisce vero o falso. se vero imposta il valore del pulsante, se falso non fare nulla.inline if istruzione java, perché non funziona

Sto cercando di utilizzare: se compareChar (curChar, toChar ("0"))? . GetButtons() ottenere (i) .setText ("§");

NetBeans sta dicendo: ')' eccettuato ':' eccettuato

ho provato queste combinazioni:

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("§") : 

ringraziarvi

risposta

0
cond? statementA: statementB 

equivale a:

if (cond) 
    statementA 
else 
    statementB 

Per il vostro caso, si può solo eliminare tutti i "se". Se usi totalmente if-else invece di?:. Non mescolarli insieme.

30

sintassi è la seguente:

"your condition"? "step if true":"step if condition fails" 
+2

Questo è il più facile da capire risposta disponibile. Bel lavoro. – JoeyG

15

(in linea se) in Java non funziona se si utilizza 'se' dichiarazione .. la sintassi destra è nel seguente esempio:

int y = (c == 19) ? 7 : 11 ; 

o

String y = (s > 120) ? "Slow Down" : "Safe"; 
System.out.println(y); 

come si può vedere il tipo della variabile Y è uguale al valore di ritorno ...

0.123.

nel tuo caso è meglio usare la normale istruzione if se non è in linea se come nella risposta precedente senza "?"

if (compareChar(curChar, toChar("0"))) getButtons().get(i).setText("§"); 
0

Questo dovrebbe essere (condizione)? Vero dichiarazione: False dichiarazioni

tralasciare il "se"

+1

Questa domanda è stata fatta e ha risposto 3 anni fa. Questo non aggiunge ulteriori informazioni. – George