istruzione if:
la sintassi è:
//singola istruzione
if (<espressione booleana>) <istruzione>;
else <istruzione>;
//per più istruzioni
if (<espressione booleana>){
<istruzioni>;
}
else if (<espr. booleana>{
<istruzioni>;
}
else{
<istruzioni>;
}
problema del dangling else:
- l’else si riferisce sempre all’istruzione if immediatamente precedente (la tabulazione non conta nulla)
operatore condizionale(ternario):
sintassi:
condizione ? valoreCasoVero : valoreCasoFalso
int abs = x < 0 ? -x : x
- è anche detto operatore Elvis.
switch case:
utile per lunghissimi if/else (come case in verilog)
switch(<espressione intera o Stringa>)
{
case <valore> : <istruzioni>; break;
case <valore> : <istruzioni>; break;
case <valore> : <istruzioni>; break;
default : <istruzioni>; break;
}
sintassi alternativa: non serve il break:
String s = switch(c){
case "k" -> "kappa";
case "h" -> "acca";
case "l" -> "elle";
case "c" -> "ci";
default -> "non so leggerlo";
}
altra alternativa (senza break ma per usarlo per definire un valore) - lo yield ci permette di non usare break.
String s = switch(c){
case "k" : yield "kappa";
case "h" : yield "acca";
case "l" : yield "elle";
case "c" : yield "ci";
default : yield "non so leggerlo";
}