maracaibo25 ha scritto:
Me lo rispieghi su questo codice gentilmente
grazie per la pazienza
Allora: un
case (idem il
default) è solamente un punto di "ingresso". Una volta individuato il punto di ingresso il codice fluisce verso il basso fino a che c'è qualcosa che fa uscire dallo switch. Può essere un
break ma anche qualcosa di più drastico che fa terminare lo switch e potenzialmente anche qualcosa più a monte (es. il metodo) come un
return o un
throw.
Quindi: c'è un case con 2? Sì, bene è questo il punto di ingresso. Ora, gli altri case/default è come se non ci fossero più. E quindi procede facendo:
System.out.println("A");
System.out.println("D");
System.out.println("B");
poi incontra il break che termina lo switch.
Il fatto che è passato ANCHE sui case 4/default/case 1/case 3/case 5 QUESTO è concettualmente il fall-through. Ma è perché non c'è niente che fa terminare prima lo switch, se non arrivando a quel break prima del case -1.
Tutto qui.
Quindi: con 5? con 8?