Differenze tra le versioni di "SELECT CASE...CASE...END SELECT"

Da Gambas-it.org - Wikipedia.
Riga 32: Riga 32:
 
Ad ogni pressione di un tasto il sistema verifica a quale codice della tastiera corrisponde e si comporta di conseguenza. Per provare l'esempio è sufficiente scrivere il codice sopra riportato all'interno di una TextBox.
 
Ad ogni pressione di un tasto il sistema verifica a quale codice della tastiera corrisponde e si comporta di conseguenza. Per provare l'esempio è sufficiente scrivere il codice sopra riportato all'interno di una TextBox.
  
Per associare lo stesso codice a più situazioni, è possibile definirli nella stessa istruzione CASE, separando ogni valore da una virgola:
+
 
 +
Per associare lo stesso codice a più situazioni, è possibile definirle nella stessa istruzione CASE, separando ogni valore da una '''virgola''':
  
 
----
 
----
Riga 49: Riga 50:
 
Come si può notare dall'esempio, nel secondo CASE sono stati definiti tre valori (F1, F2 e Home); alla pressione dei tasti corrispondenti verrà eseguita la stessa istruzione.
 
Come si può notare dall'esempio, nel secondo CASE sono stati definiti tre valori (F1, F2 e Home); alla pressione dei tasti corrispondenti verrà eseguita la stessa istruzione.
  
Se la verifica deve essere effettuata in un ambito ben determinato di valori, allora si utilizzerà '''TO''':
 
  
 +
Per associare lo stesso codice a più situazioni che insistono in un ambito ben determinato di valori, allora si utilizzerà '''TO''':
 +
 
----
 
----
 
Esempio:
 
Esempio:
Riga 62: Riga 64:
  
 
----
 
----
 +
 +
 +
Le modalità di verifica con la ''virgola'' e con il ''TO'' possono essere anche utilizzate contestualmente.
 +
 +
----
 +
Esempio:
 +
'''SELECT CASE''' variabile
 +
  '''CASE''' 8 '''TO''' 11''',''' 0
 +
    Print "Primo caso"
 +
  '''CASE''' 20 '''TO''' 25''',''' 30 '''TO''' 35
 +
    Print "Secondo caso"
 +
  '''CASE''' 40 '''TO''' 45''',''' 48''',''' 50 '''TO''' 55''',''' 58
 +
    Print "Terzo caso"
 +
'''END SELECT'''
  
  

Versione delle 03:21, 22 mag 2013

SELECT CASE variabile
 CASE variabile(1)
 <<vostro codice 1>>
 CASE variabile(2)
 <<vostro codice 2>>
 CASE variabile(3)
 <<vostro codice 3>>
 CASE ELSE oppure DEFAULT
 <<vostro codice 4>>
END SELECT 

Esegue del codice previa verifica della condizione


Spiegazione

Ogni valore che assume variabile esegue il codice successivo alla verifica. Questa funzione è simile a If..Then..Else con la differenza che è più immediata e pulita la lettura del codice, e prevede un controllo più stretto sul range di valori. Inoltre è possibile gestire il flusso di dati in modo che in caso non sia soddisfatta nessuna condizione il sistema esegua qualche cosa, questo è possibile tramite CASE ELSE o DEFAULT.

Esempio 1 - Verifica pressione di un tasto

SELECT CASE key.Code
 CASE key.Escape
 Message.Info("premuto il tasto ESC")
 CASE key.F1
 Message.Info("premuto il tasto F1")
 DEFAULT 
 Message.Info("tasto non riconosciuto")
END SELECT 

Spiegazione

Ad ogni pressione di un tasto il sistema verifica a quale codice della tastiera corrisponde e si comporta di conseguenza. Per provare l'esempio è sufficiente scrivere il codice sopra riportato all'interno di una TextBox.


Per associare lo stesso codice a più situazioni, è possibile definirle nella stessa istruzione CASE, separando ogni valore da una virgola:


Esempio:

SELECT CASE key.Code
 CASE key.Escape
 Message.Info("premuto il tasto ESC")
 CASE key.F1, key.F2, Key.Home
 Message.Info("premuto il tasto F1")
 DEFAULT 
 Message.Info("tasto non riconosciuto")
END SELECT 

Come si può notare dall'esempio, nel secondo CASE sono stati definiti tre valori (F1, F2 e Home); alla pressione dei tasti corrispondenti verrà eseguita la stessa istruzione.


Per associare lo stesso codice a più situazioni che insistono in un ambito ben determinato di valori, allora si utilizzerà TO:


Esempio:

SELECT CASE variabile
 CASE variabile1 TO variabile2
 Message.Info("rientra nell'ambito da variabile1 a variabile 2")
 CASE variabile3 TO variabile4
 Message.Info("rientra nell'ambito da variabile3 a variabile 4")
END SELECT 


Le modalità di verifica con la virgola e con il TO possono essere anche utilizzate contestualmente.


Esempio:

SELECT CASE variabile
  CASE 8 TO 11, 0
    Print "Primo caso"
  CASE 20 TO 25, 30 TO 35
    Print "Secondo caso"
  CASE 40 TO 45, 48, 50 TO 55, 58
    Print "Terzo caso"
END SELECT


Se la verifica deve essere effettuata tra due o più variabili, si utilizzerà &:


Esempio:

SELECT CASE variabileA & variabileB
 CASE variabile1 & variabile2
 Message.Info("variabileA è uguale a variabile1, variabileB è uguale a variabile2")
 CASE variabile3 & variabile4
 Message.Info("variabileA è uguale a variabile3, variabileB è uguale a variabile4")
END SELECT