Dichiarazione Swift Switch (con esempi)

In questo articolo imparerai a usare le istruzioni di controllo switch per controllare il flusso di esecuzione del tuo programma.

L'istruzione switch è anche una varietà di istruzioni di controllo Swift egif-else, guard, ecc., Che esegue azioni diverse in base a condizioni diverse.

Il bello dell'istruzione switch è che può confrontare un valore con diversi possibili modelli di corrispondenza. Pertanto, può essere utilizzato come sostituto di if… else… ifscale lunghe mentre si abbina un modello complesso.

Sintassi dell'istruzione switch

La sintassi dell'istruzione switch è:

 cambia variabile / espressione (caso valore1: // istruzioni caso valore2: // istruzioni default: // istruzioni)

Come funziona l'istruzione Switch in Swift?

  • L'espressione switch viene valutata una volta.
  • Prende l'espressione e la confronta con ogni valore del caso nell'ordine (Alto -> Basso).
  • Se c'è una corrispondenza, l'istruzione all'interno del case viene eseguita e l'intera istruzione switch termina la sua esecuzione non appena il primo caso switch corrispondente viene completato.
  • Se non c'è corrispondenza per il caso, si passa al caso successivo.
  • La parola chiave predefinita specifica il codice da eseguire se non c'è corrispondenza tra maiuscole e minuscole.

Nota : il corpo di ogni caso deve contenere almeno un'istruzione eseguibile.

Esempio 1: programma semplice che utilizza l'istruzione Switch

 let dayOfWeek = 4 switch dayOfWeek ( case 1: print("Sunday") case 2: print("Monday") case 3: print("Tuesday") case 4: print("Wednesday") case 5: print("Thursday") case 6: print("Friday") case 7: print("Saturday") default: print("Invalid day") ) 

Quando esegui il programma sopra, l'output sarà:

 mercoledì

Nel programma precedente, l'istruzione switch inizia facendo corrispondere il valore dayOfWeek con il caso 1 . Poiché il valore dayOfWeek non corrisponde al valore 1 del primo caso, passa al caso successivo finché uno non corrisponde.

Poiché il caso 4 corrisponde all'espressione switch, l'istruzione print("Wednesday")all'interno del case viene eseguita e il caso switch termina. Se nessun caso è stato trovato, viene eseguita l' istruzione all'interno di default .

Esempio 2: istruzione Switch con fallthrough

Se si utilizza la fallthroughparola chiave all'interno dell'istruzione case, il controllo procede al case successivo anche se il valore case non corrisponde all'espressione switch.

 let dayOfWeek = 4 switch dayOfWeek ( case 1 : print("Sunday") case 2: print("Monday") case 3: print("Tuesday") case 4: print("Wednesday") fallthrough case 5: print("Thursday") case 6: print("Friday") case 7: print("Saturday") default: print("Invalid day") ) 

Quando esegui il programma sopra, l'output sarà:

 mercoledi giovedi

Nel programma precedente, il caso 4 esegue l'istruzione print("Wednesday")e la fallthroughparola chiave procede al caso5 . L'istruzione print("Thursday")all'interno del case 5 viene eseguita anche se il case non corrisponde all'espressione switch. Pertanto, è possibile visualizzare l'output giovedì nella console.

Esempio 3: istruzione Switch con modelli più complessi

 let programmingLanguage = (name: "Go", version: 10) switch programmingLanguage ( case (let name,let version) where (version < 0 && name.count < 0) : print("Invalid input") case ("Swift",let version) where version == 4: print("Found latest version of Swift") case ("Swift" ,… <4 ): print("Found older version of swift)") case ("Swift" ,4… ) : print("Swift version greater than 4 is not released yet") case ("Taylor Swift",30) : print("OMG. This is Taylor swift") case (let name, let version): print(""" Programming Language:(name) Version: (version) Status: Not found """) ) 

Quando esegui il programma sopra, l'output sarà:

 Linguaggio di programmazione: Go Versione: 10 Stato: Non trovato

Nel programma sopra, stiamo confrontando la programmazione delle espressioni Linguaggio di tipo tupla con casi diversi come di seguito:

  • case (let name,let version) where (version < 0 && name.count < 0)
    Questo caso associa il valore dell'espressione switch a costanti o variabili temporanee da utilizzare nel corpo del caso con la letparola chiave. Questo è noto come associazione di valori.
    È inoltre possibile applicare la condizione a tali valori con la whereclausola. Per più condizioni where, è possibile concatenarle utilizzando l' &&operatore come nell'esempio sopra.
    Se il case non soddisfa la condizione definita all'interno della clausola where, le istruzioni all'interno di quel blocco case non vengono eseguite e cadono per confrontare il successivo switch case.
  • case ("Swift" ,… <4 )
    Questo caso corrisponde al primo elemento della tupla con la stringa letterale "Swift"e controlla anche se il secondo elemento si trova all'interno dell'intervallo unilaterale … <4.
  • case ("Swift" ,4… )
    Questo caso corrisponde al primo elemento della tupla con la stringa letterale "Swift"e controlla anche se il secondo elemento si trova all'interno dell'intervallo unilaterale 4… .
  • case (let name, let version)
    Questo caso lega tutti i valori delle tuple alle costanti o variabili temporanee.

Articoli interessanti...