While e until
Con il costrutto while
il ciclo viene eseguito fino a quando la condizione si mantiene vera, ad esempio:
lettera = "a" while lettera < "g" print lettera, " " lettera.next! end
ci darà come output:
a b c d e f
il ciclo è stato eseguito mentre la lettera ha assunto valori minori, in ordine alfabetico, di "g". Di natura opposta è until
che esegue il ciclo finché l'espressione è falsa, ad esempio:
lettera = "a" until lettera > "g" print lettera, " " lettera.next! end
L'output è:
a b c d e f g
In questo caso il ciclo è proseguito finché la lettera non è divenuta maggiore di "g".
For
L'altro ciclo di notevole interesse è il classico for
. Riprendendo l'esempio precedente possiamo scrivere
for n in "a".."g" print n, " " end
ottenendo
a b c d e f g
Il ciclo viene eseguito una volta per ogni valore assunto da n. Nel nostro esempio la variabile n assume i valori del range che ha per estremi le lettere "a" e "g". Oltre al range avremmo potuto indicare un array, o qualsiasi altro oggetto che risponde al metodo each
, e la variabile avrebbe assunto tutti i valori degli elementi dell'array, uno per ogni ciclo proprio come un iteratore.