|
|
| Riga 2: |
Riga 2: |
| FOR variabile = 1 TO 10 | | FOR variabile = 1 TO 10 |
| '''IF''' ''variabile'' = 5 '''THEN''' | | '''IF''' ''variabile'' = 5 '''THEN''' |
| <<vostro codice>> | | <<vostro codice 1>> |
| '''ELSE''' | | '''ELSE''' |
| <<vostro codice>> | | <<vostro codice 2>> |
| '''ENDIF''' | | '''ENDIF''' |
| NEXT | | NEXT |
| | | ''' Esegue una verifica condizionale.''' |
| | |
| '''FOR''' ''variabile'' '''=''' ''valore1'' '''TO''' ''valore2'' [ '''STEP''' ''valore3'' ] <<vostro codice>> '''NEXT'''
| |
| | |
| ''' Ripete un ciclo incrementando o decrementando un valore. '''
| |
| ---- | | ---- |
|
| |
|
| ''Esempio 1'' - '''Ciclo crescente semplice'''
| |
|
| |
|
| DIM variabile AS Integer
| | Un’altro mattone fondamentale nella scrittura del codice è l’istruzione '''IF…THEN…ELSE''' (letteralmente se…allora…altrimenti). |
| FOR variabile = 0 TO 10
| |
| Message.Info("Numero " & Str$(variabile))
| |
| NEXT
| |
| ''Spiegazione'' | |
|
| |
| Per ogni valore da 0 a 10 che può assumere variabile, mostra il messaggio "Numero" ed il valore di variabile. In questo caso saranno mostrati tutti i messaggi con i seguenti numeri: 0-1-2-3-4-5-6-7-8-9-10.
| |
|
| |
|
|
| |
| ''Esempio 2'' - '''Ciclo crescente con passo'''
| |
|
| |
| DIM variabile AS Integer
| |
| FOR variabile = 0 TO 10 STEP 2
| |
| Message.Info("Numero " & Str$(variabile))
| |
| NEXT
| |
| ''Spiegazione'' | | ''Spiegazione'' |
|
| |
|
| Per ogni valore da 0 a 10 con passo (STEP) 2 che può assumere variabile, mostra il messaggio "Numero" ed il valore di variabile. In questo caso saranno mostrati i messaggi con questi numeri: 0-2-4-6-8-10. | | Per variabile che va’ da 1 a 10 se il valore di variabile è uguale a 5 esegue <<vostro codice 1>> altrimenti esegue <<vostro codice 2>> quindi procede con il prossimo valore di variabile. |
|
| |
|
|
| |
|
| ''Esempio 3'' - '''Ciclo decrescente con passo''' | | ''Esempio 1'' - '''Verifica condizionale immediata''' |
|
| |
|
| DIM variabile AS Integer | | IF variabile1 = variabile2 THEN <<vostro codice>> |
| FOR variabile = 10 TO 0 STEP -2
| |
| Message.Info("Numero " & Str$(variabile))
| |
| NEXT
| |
| ''Spiegazione'' | | ''Spiegazione'' |
|
| |
| Per ogni valore da 10 a 0 con passo (STEP) -2 che può assumere variabile, mostra il messaggio "Numero" ed il valore di variabile. In questo caso saranno mostrati i messaggi con questi numeri: 10-8-6-4-2-0. Siccome per definizione di linguaggio un ciclo FOR..NEXT è crescente (1-2-3-ecc.) in caso venga omesso il comando STEP -2 non sarà mostrato alcun messaggio in quanto il nostro codice risulterà soddisfatto immediatamente.
| |
|
| |
|
| |
| ----
| |
| ''Nota''
| |
|
| |
|
| ''Chi ha già esperienza di programmazione in Visual Basic avrà notato che dopo l'istruzione NEXT non è stato specificato a quale variabile si fa' riferimento:
| | Se il valore di variabile1 è uguale a variabile2 allora esegui <<vostro codice>>. |
|
| |
|
| ''Visual Basic'' = '''NEXT''' ''variabile'' | | In questo caso <<vostro codice>> sarà un'istruzione semplice ed immediata (un assegnazione di un valore ad una variabile, un uscita dal programma, una chiamata di un funzione). |
|
| |
| ''Gambas'' = '''NEXT'''
| |
|
| |
|
| In realtà questo è superfluo per il semplice motivo che un ciclo FOR...NEXT è fine a se stesso e di tipo concentrico: ogni istruzione FOR deve concludersi con una istruzione NEXT.''
| |
| ----
| |
|
| |
|
| | ''Esempio 2'' - '''Verifica condizionale complessa''' |
|
| |
|
| ''Esempio 4'' - '''Cicli nidificati'''
| | IF variabile1 = variabile2 THEN |
| | <<vostro codice>> |
| | ENDIF |
|
| |
|
| DIM variabile AS Integer
| |
| DIM variabile1 AS Integer
| |
| DIM variabile2 AS Integer
| |
| FOR variabile = 0 TO 10
| |
| FOR variabile1 = 0 TO 10
| |
| FOR variabile2 = 0 TO 10
| |
| Message.Info("Numero " & Str$(variabile) & Str$(variabile1) & Str$(variabile2))
| |
| NEXT
| |
| NEXT
| |
| NEXT
| |
| ''Spiegazione'' | | ''Spiegazione'' |
|
| |
| Al primo avvio variabile assume il valore 0, variabile1 assume il valore 0 e variabile2 assume il valore 0. Il primo valore che viene incrementato è quello riferito a variabile2, quando questa arriva a 10 il sistema passa il controllo a variabile1 e così via fino a che variabile assume valore 10, variabile1 valore 10 e variabile2 valore 10. Possiamo quindi notare che all'interno di un codice FOR...NEXT composto da vari cicli nidificati la priorità di esecuzione è sempre riferita all'ultimo ciclo scritto.
| |
|
| |
|
| | Se il valore di variabile1 è uguale a variabile2 allora esegui <<vostro codice>>. |
|
| |
|
| ''Esempio 5'' - '''Uscita anticipata''' | | In questo caso <<vostro codice>> può essere anche di natura complessa (cicli For..Next, ulteriori istruzioni If..Then, ecc.). |
| | L'istruzione ENDIF comunica al sistema la "chiusura" della verifica condizionale. |
|
| |
|
| DIM variabile AS Integer
| |
| FOR variabile = 0 TO 10
| |
| IF variabile = 5 then
| |
| Message.Info("Esco dal ciclo.")
| |
| EXIT
| |
| ENDIF
| |
| Message.Info("Numero " & Str$(variabile))
| |
| NEXT
| |
| ''Spiegazione''
| |
|
| |
| Il programma mostrerà i messaggi per ogni valore di variabile da 0 a 4; quando variabile raggiunge il valore 5 il sistema uscirà (EXIT) dal ciclo e non mostrerà più alcun messaggio.
| |
|
| |
|
| | ''Esempio 3'' - '''Verifica condizionale multipla''' |
|
| |
|
| | IF variabile1 = variabile2 THEN |
| | <<vostro codice 1>> |
| | ELSE |
| | <<vostro codice 2>> |
| | ENDIF |
|
| |
|
| | ''Spiegazione'' |
|
| |
|
| | Se il valore di variabile1 è uguale a variabile2 allora esegui <<vostro codice 1>>, altrimenti esegui <<vostro codice 2>>. |
|
| |
|
|
| |
|
| |
| ----
| |
|
| |
| IF…THEN…ELSE
| |
| 29 11 2007
| |
|
| |
| DIM variabile AS Integer
| |
|
| |
| FOR variabile = 1 TO 10
| |
|
| |
| IF variabile = 5 THEN
| |
|
| |
| PRINT “Trovato il numero”
| |
|
| |
| ELSE
| |
|
| |
| PRINT “Sto cercando il numero…”
| |
|
| |
| ENDIF
| |
|
| |
| NEXT
| |
|
| |
| Un’altro mattone fondamentale nella scrittura di codice Basic (e quindi in Gambas) è l’istruzione IF…THEN…ELSE (letteralmente se…allora…altrimenti).
| |
|
| |
| Come per l’esempio FOR…NEXT le righe di programma sopra riportate si trasformano in questo modo:
| |
|
| |
| Per variabile che va’ da 1 a 10 se il valore di variabile è uguale a 5 stampa la frase ”Trovato il numero” altrimenti stampa la frase “Sto cercando il numero…” quindi procedi con il prossimo valore di variabile.
| |
|
| |
| Sostituendo le parole al codice si avrebbe
| |
|
| |
| Per variabile che va’ da 1 a 10
| |
|
| |
| se il valore di variabile è uguale a 5
| |
|
| |
| stampa la parola “Trovato il numero”
| |
|
| |
| altrimenti
| |
|
| |
| stampa la parola “Sto cercando il numero…”
| |
|
| |
| quindi procedi con il prossimo valore di variabile
| |
|
| |
| Analizziamo ogni singola riga per comprenderne meglio il significato:
| |
|
| |
| DIM variabile AS Integer dichiarazione della variabile (nome e tipo)
| |
|
| |
| FOR variabile = 1 TO 10 comunichiamo al sistema che valori può assumere variabile, ovvero da 1 a 10
| |
|
| |
| IF variabile = 5 THEN comunichiamo al sistema che deve controllare il valore di variabile, se questo valore è uguale a 5 allora deve fare qualche cosa
| |
|
| |
| PRINT “Trovato il numero” ad ogni valore di variabile uguale a 5 il sistema stampa la frase “Trovato il numero”, ovviamente tale frase sarà stampata una sola volta in quanto in un campo di numeri da 1 a 10, il numero 5 non è ripetuto.
| |
|
| |
| ELSE con l’istruzione IF chiediamo al programma di verificare una rispondenza, se questa non si avvera il controllo passa all’istruzione ELSE (altrimenti) che esegue un’altra porzione di codice.
| |
|
| |
| PRINT “Sto cercando il numero…” ad ogni valore di variabile che non sia uguale a 5 il sistema stampa la frase “Sto cercando il numero…”, tale frase sarà stampata 9 volte.
| |
|
| |
| ENDIF termina il codice iniziato con IF.
| |
|
| |
| NEXT procediamo con un nuovo valore fino al raggiungimento del numero 10.
| |
|
| |
| A differenza dell’istruzione FOR…NEXT, IF…THEN può essere scritta anche in una linea sola evitando quindi l’utilizzo di ELSE ed ENDIF:
| |
|
| |
| IF variabile = 5 THEN PRINT “Trovato il numero”
| |
|
| |
| Se vogliamo stampare solo la frase “Trovato il numero” eviteremo l’utilizzo di ELSE:
| |
|
| |
| DIM variabile AS Integer
| |
|
| |
| FOR variabile = 1 TO 10
| |
|
| |
| IF variabile = 5 THEN
| |
|
| |
| PRINT “Trovato il numero”
| |
|
| |
| ENDIF
| |
|
| |
| NEXT
| |
|
| |
|
| Le possibile scelte condizionali che offre l’istruzione IF…THEN sono: | | Le possibile scelte condizionali che offre l’istruzione IF…THEN sono: |
|
| |
|
| = uguale (variabile = 5) | | '''=''' uguale (variabile1 = variabile2) |
| | |
| > maggiore (variabile > 5)
| |
|
| |
|
| < minore (variabile > 5)
| | '''>''' maggiore (variabile1 > variabile2) |
|
| |
|
| <> diverso (variabile <> 5) | | '''<''' minore (variabile1 < variabile2) |
|
| |
|
| >= maggiore o uguale (variabile >= 5) | | '''<>''' diverso (variabile1 <> variabile2) |
|
| |
|
| <= minore o uguale (variabile <= 5)
| | '''>=''' maggiore o uguale (variabile1 >= variabile2) |
|
| |
|
| Alcune istruzioni sono spiegate marginalmente in questo articolo in quanto già trattate precedentemente.
| | '''<=''' minore o uguale (variabile1 <= variabile2) |
DIM variabile AS Integer
FOR variabile = 1 TO 10
IF variabile = 5 THEN
<<vostro codice 1>>
ELSE
<<vostro codice 2>>
ENDIF
NEXT
Esegue una verifica condizionale.
Un’altro mattone fondamentale nella scrittura del codice è l’istruzione IF…THEN…ELSE (letteralmente se…allora…altrimenti).
Spiegazione
Per variabile che va’ da 1 a 10 se il valore di variabile è uguale a 5 esegue <<vostro codice 1>> altrimenti esegue <<vostro codice 2>> quindi procede con il prossimo valore di variabile.
Esempio 1 - Verifica condizionale immediata
IF variabile1 = variabile2 THEN <<vostro codice>>
Spiegazione
Se il valore di variabile1 è uguale a variabile2 allora esegui <<vostro codice>>.
In questo caso <<vostro codice>> sarà un'istruzione semplice ed immediata (un assegnazione di un valore ad una variabile, un uscita dal programma, una chiamata di un funzione).
Esempio 2 - Verifica condizionale complessa
IF variabile1 = variabile2 THEN
<<vostro codice>>
ENDIF
Spiegazione
Se il valore di variabile1 è uguale a variabile2 allora esegui <<vostro codice>>.
In questo caso <<vostro codice>> può essere anche di natura complessa (cicli For..Next, ulteriori istruzioni If..Then, ecc.).
L'istruzione ENDIF comunica al sistema la "chiusura" della verifica condizionale.
Esempio 3 - Verifica condizionale multipla
IF variabile1 = variabile2 THEN
<<vostro codice 1>>
ELSE
<<vostro codice 2>>
ENDIF
Spiegazione
Se il valore di variabile1 è uguale a variabile2 allora esegui <<vostro codice 1>>, altrimenti esegui <<vostro codice 2>>.
Le possibile scelte condizionali che offre l’istruzione IF…THEN sono:
= uguale (variabile1 = variabile2)
> maggiore (variabile1 > variabile2)
< minore (variabile1 < variabile2)
<> diverso (variabile1 <> variabile2)
>= maggiore o uguale (variabile1 >= variabile2)
<= minore o uguale (variabile1 <= variabile2)