FOR...NEXT: differenze tra le versioni
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
| Riga 1: | Riga 1: | ||
'''FOR''' ''variabile'' '''=''' ''valore1'' '''TO''' ''valore2'' [ '''STEP''' ''valore3'' ] | '''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''' | ||
| Riga 34: | Riga 36: | ||
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 risulterà soddisfatto immediatamente. | ||
Esempio 4 - Cicli nidificati | ---- | ||
''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: | |||
''Visual Basic'' = '''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 variabile AS Integer | ||
DIM variabile1 AS Integer | DIM variabile1 AS Integer | ||
DIM variabile2 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)) | 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. | |||
Esempio 5 - Uscita anticipata | ''Esempio 5'' - '''Uscita anticipata''' | ||
DIM variabile AS Integer | DIM variabile AS Integer | ||
FOR variabile = 0 TO 10 | |||
IF variabile = 5 then | IF variabile = 5 then | ||
Message.Info("Esco dal ciclo.") | Message.Info("Esco dal ciclo.") | ||
EXIT | |||
ENDIF | ENDIF | ||
Message.Info("Numero " & Str$(variabile)) | Message.Info("Numero " & Str$(variabile)) | ||
NEXT | |||
''Spiegazione'' | |||
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. | 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. | ||
Versione delle 03:52, 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.
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:
Visual Basic = 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.