Ieri ho letto dell'operatore virgola in Java per for-loops. Che ha funzionato come mi aspettavo che loro. Ho pensato a questa costruzione ma non funziona come previsto.Do {} while (,) con operatore virgola, è anche possibile?
';' expected
} while((userInput < 1 || userInput > 3), wrongInput = true);
';' expected
} while((userInput < 1 || userInput > 3), wrongInput = true);
La mia idea era che, dopo un'iterazione, se il userInput
non era compreso tra 1 e 3, si dovrebbe impostare booleano wrongInput
a true
in modo che durante la prossima iterazione verrà visualizzato un messaggio di errore. Indica che lo userInput
non era valido.
private int askUserToSelectDifficulty() {
int userInput;
Boolean wrongInput = false;
do{
if(wrongInput) println("\n\t Wrong input: possible selection 1, 2 or 3");
userInput = readInt();
} while((userInput < 1 || userInput > 3), wrongInput = true);
return userInput;
}
immagino che forse perché questo è all'interno della equivalente alla parte condizionale di un ciclo for, che si tratta di sintassi non valida. Perché non è possibile utilizzare un operatore virgola nella parte condizionale?
Esempi di dove ho visto l'operatore virgola utilizzati in for-loop: Giving multiple conditions in for loop in Java Java - comma operator outside for loop declaration
un'occhiata ad operatori java - https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html – Joseph118
e quegli esempi di coma vengono utilizzati per assegnare più valori, ma non condizioni – Joseph118
@ Joseph118 Buono a sapersi che il, non è affatto un operatore in Java come già sottolineato da NPE. In effetti non è nella documentazione. – Joop