Istruzione switch

di paolo.bertin il
3 risposte
Salve,
leggendo alcuni blog che discutono l'istruzione Java switch trovo spesso associata la tecnica 'fall-through'.
Come si traduce in italiano? (traduzioni letterali quali sfumare o passare inosservato non mi aiutano a comprenderne il significato)
Ed in ogni caso cosa significa? E' collegato all'uscita dall'istruzione switch quando all'interno di un case vi e' un break?

3 Risposte

  • Passare attraverso

    L'esecuzione passa attraverso tutti i case finché non incontra un break
  • paolo.bertin ha scritto:


    leggendo alcuni blog che discutono l'istruzione Java switch trovo spesso associata la tecnica 'fall-through'.
    Come si traduce in italiano?
    Ed in ogni caso cosa significa? E' collegato all'uscita dall'istruzione switch quando all'interno di un case vi e' un break?
    Il fall-through significa semplicemente che la esecuzione del codice può "cascare attraverso" (traduzione letterale di "fall" "through") più case terminando solo quando incontra un break (o la fine fisica dello switch ... o un return).

    E giusto per completezza, a partire da Java 12 è stata introdotta (inizialmente come preview feature e poi standard e definitiva da Java 14) una nuova variante dello switch che non permette il fall-through e inoltre si può usare anche come espressione oltre che come istruzione.
  • Forse con un esempio risulta più facile capire il funzionamento del fall-through:
    
    public class FallThrough {
    
        public static void main(String[] args) {
            int valore = Integer.parseInt( args[0] );
            switch( valore ) {
                case 0:
                    System.out.println("Zero");
    
                case 1:
                    System.out.println("Uno");
    
                case 2:
                    System.out.println("Due");
    
                case 3:
                    System.out.println("Tre");
                    break;
    
                case 4:
                    System.out.println("Quattro");
                    break;
    
                case 5:
                    System.out.println("Cinque");
    
                case 6:
                    System.out.println("Sei");
    
                case 7:
                    System.out.println("Sette");
                    break;
    
                default:
                    System.out.println("Chissà");
                    break;
            }
        }
    
    }
    
    Prova ad eseguirlo più volte passando come parametro un numero intero diverso (parti da 0) e vedi come si comporta.
Devi accedere o registrarti per scrivere nel forum
3 risposte