Select Case in Visual Basic

In Visual Basic l'istruzione Select Case mi permette di eseguire un blocco di codice piuttosto che un altro, in base al valore di una variabile di controllo.

Select Case variabile

Case
x
...
Case
y
...
Case
z
...
Case Else
...
End Select

Le clausole Case identificano i blocchi di codice.

Dove x,y,z sono dei valori della variabile mentre i puntini ... sono il blocco di codice associato.

Come funziona?

Ad esempio, se la variabile è uguale a x, il programma esegue il blocco di codice dentro Case x. Se è uguale a y esegue il blocco Case Y. E via dicendo.

Ogni blocco è eseguito in modo esclusivo. Quindi, se un blocco viene selezionato ed eseguito, gli altri che seguono non sono più considerati.

La selezione termina con la parola End Select.

La clausola Case Else. Alla fine della lista si trova l'istruzione Case Else che indica il blocco finale, quello da eseguire se nessun'altra selezione si verifica. E' comunque facoltativa.

    Un esempio

    Questa Select usa la variabile voto come controllo

    Select Case voto
    Case 5
    Console.Write("insufficiente")
    Case 6
    Console.Write("sufficiente")
    Case 7
    Console.Write("distinto")
    Case 8
    Console.Write("ottimo")
    End Select

    Questa Select Case intercetta cinque eventi:

    • Se la variabile voto è 5 stampa "insufficiente" sulla console.
    • Se la variabile voto è 6 stampa "sufficiente" sulla console.
    • Se la variabile voto è 7 stampa "distinto" sulla console.
    • Se la variabile voto è 8 stampa "ottimo" sulla console.
    • Se la variabile non contiene un valore diverso da 5,6,7,8 non stampa nulla.

    Esempio 2 ( valori multipli in una stessa case )

    Posso indicare anche valori multipli in una case.

    Li elenco uno dopo l'altro separandoli con una virgola

    Select Case voto
    Case 0,1,2,3,4,5
    Console.Write("insufficiente")
    Case 6
    Console.Write("sufficiente")
    Case 7
    Console.Write("distinto")
    Case 8,9, 10
    Console.Write("ottimo")
    End Select

    In questo caso se la variabile voto è 0,1,2,3,4 o 5, il programma stampa "insufficiente" sulla console.

    Se la variabile voto è 8,9,10 il programma stampa "ottimo" sulla console.

    Le altre Case sono uguali all'esempio precedente.

    Esempio 3 ( raggruppamenti )

    Se i valori di controllo sono numerici e contigui tra loro posso indicare il gruppo anziché l'elenco completo.

    Per indicare il gruppo scrivo il primo e l'ultimo valore separandoli con un trattino. Ad esempio 0-5 e 8-10.

    Select Case voto
    Case 0-5
    Console.Write("insufficiente")
    Case 6
    Console.Write("sufficiente")
    Case 7
    Console.Write("distinto")
    Case 8-10
    Console.Write("ottimo")
    End Select

    Esempio 4 ( valori non numerici )

    I valori di controllo possono essere di qualsiasi tipo anche non numerico.

    In questa case uso delle stringhe come valori di controllo.

    Select Case voto
    Case "Milano"
    Console.Write("nord")
    Case "Roma"
    Console.Write("centro")
    Case "Napoli"
    Console.Write("sud")
    End Select

    Esempio 5 ( Case Else )

    Se aggiungo la clausla Case Else alla fine, posso imporre una risposta di default.

    La risposta di default viene eseguita quando nessuna selezione precedente è soddisfatta.

    Select Case city
    Case "Milano"
    Console.Write("nord")
    Case "Roma"
    Console.Write("centro")
    Case "Napoli"
    Console.Write("sud")
    Case Else
    Console.Write("città non registrata")

    End Select

    Ad esempio, la variabile city="Firenze" il programma stampa il messaggio "città non registrata".

    E così via.

     


     

    Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

    FacebookTwitterLinkedinLinkedin
    knowledge base

    Visual Basic .NET

    Il linguaggio di programmazione

    Visual Studio