Differenze tra le versioni di "FOR...NEXT"

Da Gambas-it.org - Wikipedia.
 
Riga 1: Riga 1:
  FOR variabile = valore1 TO valore2 [ STEP valore3 ] vostro codice NEXT
+
  '''FOR''' ''variabile'' '''=''' ''valore1'' '''TO''' ''valore2'' [ '''STEP''' ''valore3'' ] [[vostro codice]] '''NEXT'''
Ripete un ciclo incrementando o decrementando un valore
+
Ripete un ciclo incrementando o decrementando un valore.
  
Esempio 1 - Ciclo crescente semplice
+
''Esempio 1'' - '''Ciclo crescente semplice'''
  
 
  DIM variabile AS Integer
 
  DIM variabile AS Integer
  FOR variabile = 0 TO 10
+
    FOR variabile = 0 TO 10
 
       Message.Info("Numero " & Str$(variabile))
 
       Message.Info("Numero " & Str$(variabile))
  NEXT  
+
    NEXT  
+
''Spiegazione''
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.
  
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
+
''Esempio 2'' - '''Ciclo crescente con passo'''
  
 
  DIM variabile AS Integer
 
  DIM variabile AS Integer
  FOR variabile = 0 TO 10 STEP 2
+
    FOR variabile = 0 TO 10 STEP 2
 
       Message.Info("Numero " & Str$(variabile))
 
       Message.Info("Numero " & Str$(variabile))
  NEXT  
+
    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 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.
  
Ovviamente è possibile eseguire dei cicli decrescenti
 
  
Esempio 3 - Ciclo decrescente con passo
+
''Esempio 3'' - '''Ciclo decrescente con passo'''
  
 
  DIM variabile AS Integer
 
  DIM variabile AS Integer
  FOR variabile = 10 TO 0 STEP -2
+
    FOR variabile = 10 TO 0 STEP -2
 
       Message.Info("Numero " & Str$(variabile))
 
       Message.Info("Numero " & Str$(variabile))
  NEXT  
+
    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.
  
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 viene soddisfatto immediatamente.
 
 
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: VB=NEXT variabile <> 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.
 
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: VB=NEXT variabile <> 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.
  

Versione delle 03:32, 17 gen 2008

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
   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

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.


Esempio 3 - Ciclo decrescente con passo

DIM variabile AS Integer
   FOR variabile = 10 TO 0 STEP -2
     Message.Info("Numero " & Str$(variabile))
   NEXT 

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.

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: VB=NEXT variabile <> 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 4 - Cicli nidificati

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


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.

Esempio 5 - Uscita anticipata

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.