Come usare i loop in Ruby

I programmi per computer devono spesso eseguire azioni diverse volte, non solo una volta. Ad esempio, un programma che stampa tutte le nuove e-mail dovrà stampare ogni e-mail da un elenco, non solo una singola e-mail. Per fare questo, vengono utilizzati costrutti chiamati loop. Un ciclo ripeterà le istruzioni al suo interno un numero di volte fino a quando non viene soddisfatta una condizione.

While Loop

Il primo tipo di questi loop è un ciclo while. Mentre i loop eseguiranno tutte le istruzioni contenute al loro interno finché la frase condizionale rimane vera. In questo esempio, il ciclo aumenta continuamente il valore della variabile io di uno. Finché l'affermazione condizionale io < 10 è vero, il ciclo continuerà a eseguire l'istruzione i + = 1 che aggiunge uno alla variabile.

#! / usr / bin / env ruby
i = 0
mentre io < 10
i + = 1
fine
mette io

Fino a loop

Fino a quando i loop sono quasi identici ai loop while, tranne per il fatto che eseguiranno il ciclo fino a quando è l'istruzione condizionale falso. Il ciclo while eseguirà il ciclo mentre la condizione è vera, il ciclo until sarà ripetuto fino a la condizione è vera. Questo esempio è l'equivalente funzionale dell'esempio del ciclo while, ad eccezione dell'uso di un ciclo until, fino a quando i == 10 . La variabile viene incrementata di uno fino a quando il suo valore è uguale a dieci.

#! / usr / bin / env ruby
i = 0
fino a quando i == 10
i + = 1
fine
mette io

Avvolge il "Ruby Way"

Sebbene i più tradizionali e mentre i loop siano utilizzati nei programmi Ruby, i loop basati sulla chiusura sono più comuni. Non è nemmeno necessario capire cosa sono le chiusure o come funzionano al fine di utilizzare questi loop; in effetti, sono visti come normali anelli nonostante siano molto diversi sotto il cofano.

The Times Loop

Il volte il loop può essere utilizzato su qualsiasi variabile contenente un numero o utilizzato su un numero stesso. Nel seguente esempio, il primo ciclo viene eseguito 3 volte e il secondo ciclo viene eseguito, tuttavia molte volte viene immesso dall'utente. Se si immette 12, verrà eseguito 12 volte. Noterai che il ciclo dei tempi usa la sintassi del punto (3.times do) piuttosto che la sintassi della parola chiave usata dal ciclo while e until. Ciò ha a che fare con il modo in cui il loop dei tempi funziona sotto il cofano, ma viene utilizzato allo stesso modo per un po 'o fino a quando non viene utilizzato il loop.

#! / usr / bin / env ruby
3. volte lo fanno
mette "Questo verrà stampato 3 volte"
fine
stampa "Inserisci un numero:"
num = gets.chomp.to_i
num.times do
mette "Ruby è fantastico!"
fine

The Each Loop

Il ogni loop è forse il più utile di tutti i loop. Ogni ciclo prenderà un elenco di variabili ed eseguirà un blocco di istruzioni per ognuna di esse. Poiché quasi tutte le attività di elaborazione utilizzano elenchi di variabili e devono fare qualcosa con ognuna di esse nell'elenco, ciascun ciclo è di gran lunga il ciclo più comune nel codice Ruby. Una cosa da notare qui è l'argomento del blocco di istruzioni del ciclo. Il valore della variabile corrente che il loop sta osservando viene assegnato al nome della variabile in caratteri pipe, ovvero | N | nell'esempio. La prima volta che viene eseguito il ciclo, il n la variabile sarà uguale a "Fred", la seconda volta che il ciclo viene eseguito sarà uguale a "Bob" e così via.

#! / usr / bin / env ruby
# Un elenco di nomi
names = ["Fred", "Bob", "Jim"]
names.each do | n |
mette "Hello # n"
fine