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

Da Gambas-it.org - Wikipedia.
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)

Versione delle 03:58, 17 gen 2008

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)