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";
}