Articoli Referenze Script FAQ Downloads ASP E-Commerce con ASP Menu Javascript Ricette Cocktail Registrazione domini Area Aziende



Istruzioni di controllo: condizioni e iterazioni

Home + Articoli + Teoria + Articolo # 5
Autore: Luca Ruggiero



Per una corretta gestione del flusso di un programma, o di uno script che dir si voglia, è necessario avvalersi di alcune caratteristiche del linguaggio utilizzato per impostare condizioni sugli eventi ed iterazioni sui dati. Si tratta di caratteristiche comuni a qualsiasi linguaggi e prendono il nome di istruzioni di controllo.

Le istruzioni di controllo si dividono in due macro categorie
  • Istruzioni condizionali - Controllano il flusso di un programma gestendo diversi processi ed output a seconda di eventi di qualsiasi natura, come un'azione di un utente o il semplice trascorrere del tempo.
  • Istruzioni di iterazione - Controllano il flusso di un programma gestendo l'output dei dati, ripetendo ciclicamente istruzioni e dati, in funzione di determinate condizioni impostabili con routine native oppure con le istruzioni condizionali.
In questo articolo esamineremo tutte le caratteristiche di queste due categorie di istruzioni di controllo.

Istruzioni condizionali

Le istruzioni condizionali, come il loro nome lascia ad intendere, impostano delle condizioni in base alle quali si verificheranno determinate circostanze piuttosto che altre. Si utilizzano una serie di comandi la cui gestione e filosofia è molto simile al linguaggio umano.

Ad esempio "se domani piove resto a casa, altrimenti esco". La condizione di base è la pioggia ed in funzione che sia vera o falsa (che piova o meno) il risultato sarà differente (resto a casa o esco).

Facciamo un esempio più vicino all'informatica. Verifichiamo che due stringhe siano uguali e scriviamo a video un messaggio differente
<%
    Dim a, b
    a = "pippo"
    b = "pluto"
    If a = b Then
        Response.Write "Stringhe uguali"
    Else
        Response.Write "Stringhe diverse"
    End If
%>
In questo caso le stringhe sono diverse, quindi riceveremo il secondo messaggio. Proviamo ed impostare una condizione in base ad un calcolo numerico
<%
    Dim a, b, c
    a = 3
    b = 5
    c = a + b
    If c = 8 Then
        Response.Write c & " è uguale a 8"
    Else
        Response.Write c & " è diverso da 8"
    End If
%>
Dato che 3 + 5 = 8 e la condizione vuole che il risultato (memorizzato nella variabile c) sia uguale a 8, la condizione è soddisfatta, quindi il messaggio restituito dalla routine sarà il primo.

Una volta entrati nell'ordine di idee di cosa vuol dire utilizzare delle istruzioni condizionali, vediamo quali sono i comandi che abbiamo utilizzato: If apre la condizione, Then specifica cosa deve succedere se la condizione viene soddisfatta, Else apre un blocco di istruzioni alternative nel caso in cui la condizione non viene soddisfatta, End If chiude la condizione.

Esiste anche la possibilità di gestire condizioni di livello intermedio col comando ElseIf. Vediamo come

<%
    Dim a
    a = 10
    If a = 0 Then
        Response.Write "a = 0"
    ElseIf a = 5 Then
        Response.Write "a = 5"
    Else
        Response.Write "a = " & a
    End If
%>
Verifichiamo che a valga 0, poi che a valga 5 ed in fine, se nessuna delle condizioni viene soddisfatta, ci arrendiamo e ci facciamo dire dallo script il valore di a.

Nel caso in cui una condizione debba verificare che ci sia una sola soluzione ed in base a quella restituire un valore, possiamo scrivere il codice anche su di una sola riga, rendendo opzionale l'istruzione di chiusura
<%
    Dim a
    a = 10
    If a = 10 Then Response.Write "Condizione soddisfatta"
%>
Esiste anche la possibilità di utilizzare una serie di istruzioni differenti da quelle appena elencate, ovvero il comando Select Case. Vediamo brevemente come funziona traducendo l'ultimo esempio esaminato
<%
    Dim a
    a = 10
    Select Case a
        Case 0    : Response.Write "a = 0"
        Case 5    : Response.Write "a = 5"
        Case Else : Response.Write "a = " & a
    End Select
%>
Le righe con istruzioni Case indicano tutti i vari casi che potrebbero rappresentare il soddisfacimento della condizione, mentre Case Else indica tutti gli altri casi. I due punti (:) in VBScript separano due righe di comando che altrimenti dovrebbero essere scritte a capo, come nel codice che segue
<%
    Dim a
    a = 10
    Select Case a
        Case 0
            Response.Write "a = 0"
        Case 5
            Response.Write "a = 5"
        Case Else
            Response.Write "a = " & a
    End Select
%>
Istruzioni di iterazione

Passiamo adesso alle istruzioni iterazione. I principali comandi per la gestione di quelli che vengono definiti cicli sono
  • For - Ripete una serie di istruzioni in funzione di un contatore numerico.
  • While - Ripete una serie di istruzioni in funzione di una condizione nativamente impostata nel codice.
Facciamo un esempio di ciclo For
<%
    Dim i
    i = 1
    For i = 1 To 10
        Response.Write i & "<br>"
    Next
%>
Stampa a video
1
2
3
4
5
6
7
8
9
10
Il comando Next provvede a chiudere l'istruzione For ed a muoversi verso la prossima iterazione, finchè la condizione i = 1 To 10 non viene soddisfatta.

Facciamo adesso un esempio dell'utilizzo dell'istruzione While, traducendo l'esempio precedente
<%
    Dim i
    i = 1
    While i <= 10
        Response.Write i & "<br>"
        i = i + 1
    Wend
%>
Il risultato stampato a video è analogo al precedente.

Il comando Wend chiude l'istruzione While ma l'incremento non avviene direttamente ma va forzato incrementando di una unità il valore di i
i = i + 1
L'utilizzo dei cicli è determinante nell'interrogazione dei database e dei file XML, stampando a video in sequenza tutti i dati richiesti.

© 2008 ASP Center di Luca Ruggiero - P. IVA 05564851219 - Disclaimer | Privacy | Pubblicità | Supportaci | Staff | Contatti
  Appunti PHP | Giornale Webmaster | Mr.Webmaster | Download | DevSpy.com | ASPCode.it | ClaudioGarau.it | Webmaster Facile | Come Faccio | AlVerde.net | CodiceFacile.it | I Programmatori | By Luciani | VoiceXML Italian User Group | Giochi | Extro Web Site | Morpheus Web | AG Web Solutions | Net-Free | PC Sicuro | PC Self | Tutorial Web | Dablones