Istruzione switch

di il
3 risposte

Istruzione switch

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

  • Re: Istruzione switch

    Passare attraverso

    L'esecuzione passa attraverso tutti i case finché non incontra un break
  • Re: Istruzione switch

    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.
  • Re: Istruzione switch

    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