Differenze tra le versioni di "IF...THEN...ELSE...ENDIF"

Da Gambas-it.org - Wikipedia.
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 multipla'''
+
''Esempio 3'' - '''Verifica condizionale logica'''
  
 
  IF variabile1 = variabile2 THEN  
 
  IF variabile1 = variabile2 THEN  
Riga 52: Riga 54:
 
''Spiegazione''
 
''Spiegazione''
  
Se il valore di variabile1 è uguale a variabile2 allora esegui <<vostro codice 1>>, altrimenti esegui <<vostro codice 2>>.
+
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.