I cicli in Ruby
I cicli sono dei costrutti comuni a tutti i linguaggi di programmazione e di scripting; essi non sono altro che delle iterazioni che si verificano fino a quando non viene soddisfatta una determinata condizione.
Uno dei cicli più utilizzati in Ruby (e non solo) è while, grazie ad esso è possibile produrre più output sulla base di una condizione iniziale, vediamone un semplice esempio:
# ciclo while # definizione della variabile i = 0 # condizione while i < 5 do print i , ' ' i+= 1 # chiusura del ciclo while endIl codice proposto è abbastanza semplice: una volta stabilito il valore da associare ad una variabile ("i=0"), abbiamo richiesto allo script di stampare tutti i valori d'incremento unitario fino ad una cifra inferiore a "5". L'output sarà quindi:
0 1 2 3 4Da notare come:
- abbiamo utilizzato "print" al posto di "puts" per evitare che nell'output fossero inserite newline che mandassero a capo i numeri
- abbiamo richiesto con una stessa istruzione la stampa di un intero e di una stringa (nel nostrio caso vuota) separandole con una virgola ("print i , ' '")
- l'utilizzo del segno "+" associato ad una variabile definita e ad un valore ("i+= 1") ha permesso di stabilire un incremento
- attenzione! L'incremento necessita il costrutto "n+= val" , separare "+" da "=" determina la notifica di un errore
# ciclo while con interruzione # definizione della variabile i = 0 # condizione while i < 5 do print i , ' ' i+= 1 # interruzione del ciclo break if i == 3 # chiusura del ciclo while endNell'esempio appena proposto abbiamo stabilito grazie a "break" che una volta raggiunto un valore pari a "3" il ciclo deve esse interrotto, non ci sarà quindi una nuova iterazione che porterà alla stampa dei valori "3" e "4".
Ma se volessimo semplicemente "saltare" un passaggio del ciclo potremmo farlo? Certamente, grazie all'istruzione next:
# uso dell'istruzione next nei cicli # definizione di una variabile val = 0 # condizione while val < 3 val += 1 # valore da saltare per il ciclo next if val == 2 print val, ' ' # stampa "1 3" # chiusura del ciclo while endDi natura opposta a "while" è invece until, esso infatti si occupa di eseguire delle iterazioni fino a quando una condizione non risulta falsa; vediamone un esempio:
# ciclo until i = 0 # condizione until i == 4 print i , ' ' i += 1 # chiusura del ciclo until endL'output prodotto dal nostro scriptino sarà:
0 1 2 3Infatti nel momento in cui la variabile assumerà un valore pari a "4" la condizione risulterà vera e il ciclo si interromperà restituendo solo i risultati per cui essa non risulta valida.
Passiamo ora all'analisi di un ultima tipologia di ciclo, for; il suo utilizzo è talmente semplice che mostreremo subito un esempio.
# ciclo for for i in (1..5) print i, ' ' # chiusura del ciclo for endIn pratica abbiamo stabilito di incrementare il valore di "i" partendo da "1" (inizializzazione del ciclo) fino a "5" (condizione di terminazione); le iterazioni si fermeranno una volta raggiunto il massimo incremento consentito:
0 1 2 3 4 5Da notare come i valori di input siano stabiliti all'interno dei parametri per il ciclo, non è quindi necessario definire preventivamente la variabile da incrementare.
');







