Differenze tra le versioni di "IF...THEN...ELSE...ENDIF"
Riga 5: | Riga 5: | ||
'''ELSE''' | '''ELSE''' | ||
<<vostro codice 2>> | <<vostro codice 2>> | ||
+ | '''ELSE IF''' | ||
+ | <<vostro codice 3>> | ||
'''ENDIF''' | '''ENDIF''' | ||
NEXT | NEXT | ||
Riga 42: | Riga 44: | ||
− | ''Esempio 3'' - '''Verifica condizionale | + | ''Esempio 3'' - '''Verifica condizionale logica''' |
IF variabile1 = variabile2 THEN | IF variabile1 = variabile2 THEN | ||
Riga 52: | Riga 54: | ||
''Spiegazione'' | ''Spiegazione'' | ||
− | + | Nell'esempio è stata adottata una verifica logica, ovvero che può avere solo due condizioni: se il valore di variabile1 è uguale a variabile2 allora esegui <<vostro codice 1>>, altrimenti esegui <<vostro codice 2>>. | |
+ | |||
+ | |||
+ | ''Esempio 4'' - '''Verifica condizionale multipla''' | ||
+ | |||
+ | IF variabile1 = variabile2 THEN | ||
+ | <<vostro codice 1>> | ||
+ | ELSE IF variabile1 < variabile2 THEN | ||
+ | <<vostro codice 2>> | ||
+ | ELSE IF variabile1 > variabile2 THEN | ||
+ | <<vostro codice 3>> | ||
+ | ELSE | ||
+ | <<vostro codice 4>> | ||
+ | ENDIF | ||
+ | |||
+ | ''Spiegazione'' | ||
+ | |||
+ | Nell'esempio è stata adottata una verifica multipla, ovvero il controllo su molteplici condizioni: | ||
+ | 1) se il valore di variabile1 è uguale a variabile2 esegui <<vostro codice 1>>; | ||
+ | altrimenti | ||
+ | 2) se il valore di variabile1 è minore di variabile2 esegui <<vostro codice 2>>; | ||
+ | altrimenti | ||
+ | 3) se il valore di variabile1 è maggiore di variabile2 esegui <<vostro codice 3>>; | ||
+ | altrimenti | ||
+ | 4) esegui <<vostro codice 4>>. | ||
+ | Questo tipo di verifica permette di eseguire decisioni su più possibilità (se previste); nel caso nessuna sia valida, verrà eseguito il codice dopo l'ultimo ELSE. | ||
+ | ---- | ||
+ | La sintassi prevede anche la possibilità di concatenare più IF per la stessa condizione: | ||
+ | |||
+ | ''Esempio 5'' - '''Verifica condizionale con concatenamento AND''' | ||
+ | |||
+ | IF <condizione 1> AND IF <condizione 2> THEN | ||
+ | <<vostro codice 1>> | ||
+ | END IF | ||
+ | |||
+ | ''Esempio 6'' - '''Verifica condizionale con concatenamento OR''' | ||
+ | |||
+ | IF <condizione 1> OR IF <condizione 2> THEN | ||
+ | <<vostro codice 2>> | ||
+ | END IF | ||
+ | |||
+ | ''Spiegazione'' | ||
+ | |||
+ | Questo tipo di sintassi viene in aiuto nel caso si debba eseguire lo stesso codice (evitare sempre le duplicazioni!); le condizioni non vengono valutate tutte prima del risultato, ma solo una per volta, da sinistra verso destra, e la successiva solo se la precedente ritorna un valore logico positivo: | ||
+ | |||
+ | ''esempio 5:'' verifica <condizione 1> e, se vera, verifica <condizione 2>, se vera anche questa esegue il codice <<vostro codice 2>> | ||
+ | |||
+ | ''esempio 6:'' verifica <condizione 1> e, se vera esegue il codice <<vostro codice 2>>, altrimenti verifica <condizione 2>, se vera questa esegue il codice <<vostro codice 2>> | ||
+ | |||
+ | L'unico problema, almeno per ora, è che le IF devono stare tutte sulla stessa riga, in caso contrario si verificherà un errore di compilazione. | ||
+ | ---- | ||
Riga 68: | Riga 120: | ||
'''<=''' minore o uguale (variabile1 <= variabile2) | '''<=''' minore o uguale (variabile1 <= variabile2) | ||
+ | |||
+ | ---- | ||
+ | '''Nota:''' la sintassi '''IF...ELSE...ENDIF''' si rende necessaria quando la verifica deve essere fatta su valori, o condizioni, che possono assumere valori troppo dinamici e generici; nel caso di valori fissi viene in aiuto un'altra sintassi, che in molti casi si rende più leggibile: '''SELECT CASE...CASE...END SELECT'''. |
Versione delle 15:33, 25 set 2008
DIM variabile AS Integer FOR variabile = 1 TO 10 IF variabile = 5 THEN <<vostro codice 1>> ELSE <<vostro codice 2>> ELSE IF <<vostro codice 3>> 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 logica
IF variabile1 = variabile2 THEN <<vostro codice 1>> ELSE <<vostro codice 2>> ENDIF
Spiegazione
Nell'esempio è stata adottata una verifica logica, ovvero che può avere solo due condizioni: se il valore di variabile1 è uguale a variabile2 allora esegui <<vostro codice 1>>, altrimenti esegui <<vostro codice 2>>.
Esempio 4 - Verifica condizionale multipla
IF variabile1 = variabile2 THEN <<vostro codice 1>> ELSE IF variabile1 < variabile2 THEN <<vostro codice 2>> ELSE IF variabile1 > variabile2 THEN <<vostro codice 3>> ELSE <<vostro codice 4>> ENDIF
Spiegazione
Nell'esempio è stata adottata una verifica multipla, ovvero il controllo su molteplici condizioni:
1) se il valore di variabile1 è uguale a variabile2 esegui <<vostro codice 1>>; altrimenti 2) se il valore di variabile1 è minore di variabile2 esegui <<vostro codice 2>>; altrimenti 3) se il valore di variabile1 è maggiore di variabile2 esegui <<vostro codice 3>>; altrimenti 4) esegui <<vostro codice 4>>.
Questo tipo di verifica permette di eseguire decisioni su più possibilità (se previste); nel caso nessuna sia valida, verrà eseguito il codice dopo l'ultimo ELSE.
La sintassi prevede anche la possibilità di concatenare più IF per la stessa condizione:
Esempio 5 - Verifica condizionale con concatenamento AND
IF <condizione 1> AND IF <condizione 2> THEN <<vostro codice 1>> END IF
Esempio 6 - Verifica condizionale con concatenamento OR
IF <condizione 1> OR IF <condizione 2> THEN <<vostro codice 2>> END IF
Spiegazione
Questo tipo di sintassi viene in aiuto nel caso si debba eseguire lo stesso codice (evitare sempre le duplicazioni!); le condizioni non vengono valutate tutte prima del risultato, ma solo una per volta, da sinistra verso destra, e la successiva solo se la precedente ritorna un valore logico positivo:
esempio 5: verifica <condizione 1> e, se vera, verifica <condizione 2>, se vera anche questa esegue il codice <<vostro codice 2>>
esempio 6: verifica <condizione 1> e, se vera esegue il codice <<vostro codice 2>>, altrimenti verifica <condizione 2>, se vera questa esegue il codice <<vostro codice 2>>
L'unico problema, almeno per ora, è che le IF devono stare tutte sulla stessa riga, in caso contrario si verificherà un errore di compilazione.
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)
Nota: la sintassi IF...ELSE...ENDIF si rende necessaria quando la verifica deve essere fatta su valori, o condizioni, che possono assumere valori troppo dinamici e generici; nel caso di valori fissi viene in aiuto un'altra sintassi, che in molti casi si rende più leggibile: SELECT CASE...CASE...END SELECT.