Gli operatori logici in Visual Basic Net? Li trovi su Opentraining.it Visual Basic Italia
Guide e Tutorials:indexed
La funzione Choose (Tutorial completo)
Spesso si dimentica l'utilità di funzioni non molto note come questa. Choose permette infatti di semplificare se non il risultato di un operazione di scelta, quanto meno il lavoro di chi sviluppa il codice.
Attraverso la succitata funzione è dunque possibile operare una scelta tra diversi argomenti (stringhe di testo, numeri eccetera...) organizzati in una vera e propria lista.
La sintassi di Choose è la seguente:

Choose(indice,[primo termine di scelta], [secondo termine di scelta],...,[n-esimo termine di scelta])

Come si deduce dalla sintassi appena vista, Choose si compone di due tipi di elementi che verranno spiegati in dettaglio nella seguente tabella:

indice E' l'indice che rappresenta quale elemento della lista estrarre da essa. Se ad esempio si intende prendere in considerazione il primo elemento della lista sarà necessario indicare indice in modo che assuma il valore 1. All'interno della funzione conviene non assegnare un valore numerico ad indice ma piuttosto specificare una variabile in modo da poter operare più scelte indicando di volta in volta l'indice dell'elemento della lista. Questo ragionamento apparirà comunque molto più chiaro nel corso dell'esempio che conclude l'articolo;
i-esimo termine della scelta E' ogni singolo elemento che compone la lista. Può trattarsi di un numero o di una stringa di testo.

Passiamo immediatamente all'esempio che ci servirà per introdurre un aspetto particolare della funzione. Prendiamo in considerazione una lista formata di sette giorni della settimana in ordine crescente da Lunedì a Domenica: "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato", "Domenica". Generiamo un numero casuale preso in un intervallo che va da 1 a 7 compresi. A seconda del numero casuale che verrà generato, vogliamo che venga estratto dalla lista il giorno della settimana che ad esso corrisponde, ad esempio: "Lunedì" corrisponde ad 1, "Martedì" a 2,..., "Domenica" a 7:

Private Sub Form_Load()
Dim a As Integer
a = Int((7 * Rnd) + 1)
MsgBox a & " " & Choose(a, "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato", "Domenica")
End Sub

Se si prova a dare l'avvio a questa applicazione (professionale) che abbiamo appena creato, si noterà che nella finestra di messaggio che appare, la rispondenza tra il numero indicato ed il giorno della settimana è proprio quella che avevamo auspicato.
Come la guida in linea di Visual Basic suggerisce, esistono tre ulteriori aspetti importanti da prendere in considerazione. Il primo, citando la guida, è che "[...] La funzione Choose restituisce un valore Null se indice è minore di 1 o maggiore del numero di scelte disponibili.[...]", il secondo: "[...]Se indice non è un numero intero, verrà arrotondato al numero intero più vicino prima di essere valutato.[...]" ed il terzo che forse è il più particolare: "[...] è opportuno prevedere la possibilità di effetti indesiderati. Se, ad esempio, la funzione MsgBox viene utilizzata come parte di un’espressione in tutte le scelte, la valutazione di ciascuna scelta comporterà la visualizzazione di una finestra di messaggio, anche se Choose restituirà il valore di una sola scelta."
Questo significa che avere una lista del tipo: "Lunedì", "Martedì", "Mercoledì", MsgBox("Giovedì"), "Venerdì", "Sabato" "Domenica", essendoci in lista una funzione MsgBox, la finestra verrà comunque visualizzata anche se la sua posizione non corrisponde all'indice indicato. Questo perchè come letto poco sopra, la funzione Choose processa tutti gli elementi della lista prima di ritornare il risultato.

Archivio:ndexed
Lezioni Commenta questa lezione Invia la tua guida Avviso per le nuove lezioni
Proponi un argomento

Visual Basic Italia© copyright 2000 - tutti i diritti riservati
E-mail:
vbitalia@libero.it