Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Logica condizionale: Select... Case

A seconda del valore di una certa variabile si possono scegliere più rami del programma
A seconda del valore di una certa variabile si possono scegliere più rami del programma
Link copiato negli appunti

Se è vero che possiamo utilizzare if e/o elsif per scegliere quale ramo eseguire, questo approccio può diventare sia lungo che complicato soprattutto quando i valori da controllare sono molti. Per valutare l'assuzione di diversi valori da parte di una variabile esiste il costrutto Select Case, eccone sintassi:

Select case valore / espressione
  
  case valore_possibile_1 / espressione_possibile_1
    'blocco di istruzioni 1
    
  case valore_possibile_2 / espressione_possibile_2
    'blocco di istruzioni 2

  '...
  
  case valore_possibile_N / espressione_possibile_N
    'blocco di istruzioni N
  
  '-- Parte di codice opzionale --
  case else
    'blocco di istruzioni else
  '-- Fine parte opzionale --
  
end select

Prima di vedere un esempio pratico spieghiamo in teoria come si struttura questo costrutto di logica condizionale. Innanzitutto va osservato che si apre con la sintassi Select case valore/espressione. Il termine valore/espressione serve ad indicare la vecchia condizione dell'if descritto nella pagina precedente. Le diverse voci presenti al suo interno hanno una struttura molto simile alla seguente case valore_possibile_N/espressione_possibile_N. Esse servono per indicare al parser Asp che se dovesse riconoscere al valore indicato dopo il case come "risposta" alla condizione indicata, esso dovrà svolgere quel blocco di istruzioni. La parte opzionale, serve solamente nel caso che la condizione non venga verificata in nessun case precedente.

Se presente e nessun case sovrastante avrà verificato la condizione, quest'ultimo verrà eseguito. Adesso vediamo l'ultimo esempio dei nomi realizzato con l'if adattato al Select Case.

<%
dim strNome
strNome = "innovatel"

select case strNome
  case "pippo"
    response.write "Ciao pippo"
  
  case "tizio"
    response.write "Ciao tizio"
    
  case else
    response.write "Ciao innovatel"
end select
%>

Ho ancora un'ultima nota da fare sul costrutto in questione prima di passare alla logica ciclica. È possibile valutare diversi valori nello stesso case purché essi vengano separati da una virgola. Adesso vi mostro un breve esempio:

<%
dim strNome
strNome = "innovatel"

select case strNome
  case "pippo", "tizio"
    response.write "Non sei innovatel."
    
  case else
    response.write "Ciao innovatel"
end select
%>

Ti consigliamo anche