Dataprogrammer må ofte utføre handlinger flere ganger, ikke bare en gang. Et program som skriver ut all den nye e-posten din, må for eksempel skrive ut hver e-post fra en liste, ikke bare en enkelt e-post. For å gjøre dette brukes konstruksjoner som kalles løkker. En sløyfe vil gjenta uttalelser inni den flere ganger til en eller annen betingelse er oppfylt.
Mens løkker
Den første typen av disse løkkene er en stundsløyfe. Mens løkker vil utføre alle utsagnene som finnes i dem, så lenge den betingede uttalelsen forblir sann. I dette eksemplet øker løkken kontinuerlig variabelen Jeg av en. Så lenge den betingede uttalelsen i <10 er sant, vil løkken fortsette å utføre uttalelsen i + = 1 som legger til en til variabelen.
#! / usr / bin / env ruby
i = 0
mens jeg <10
i + = 1
slutt
setter jeg
Inntil Loops
Inntil løkker er nesten identiske med mens løkker er bortsett fra at de vil sløyfe så lenge betinget uttalelse er falsk. Mens loopen sløyfes mens tilstanden er sann, vil loopen loop til før tilstanden er sann. Dette eksemplet er den funksjonelle ekvivalenten til eksempelsløyfeeksemplet, bortsett fra å bruke en tilsløyfe,
til i == 10 . Variabelen økes med en til dens verdi tilsvarer ti.#! / usr / bin / env ruby
i = 0
til i == 10
i + = 1
slutt
setter jeg
Loops "Ruby Way"
Selv om de mer tradisjonelle mens og inntil løkker er brukt i Ruby-programmer, er lukkebaserte løkker mer vanlig. Det er ikke engang nødvendig å forstå hva stengninger er eller hvordan de fungerer for å bruke disse løkkene; faktisk blir de sett på som vanlige løkker til tross for at de er veldig forskjellige under panseret.
The Times Loop
De ganger loop kan brukes på en hvilken som helst variabel som inneholder et tall eller brukes på et nummer selv. I det følgende eksemplet kjøres den første sløyfen 3 ganger og den andre sløyfen kjøres, men mange ganger blir den lagt inn av brukeren. Hvis du legger inn 12, vil den løpe 12 ganger. Du vil merke at times loop bruker prikken syntaks (3. ganger gjør) i stedet for syntaks for søkeord som brukes av mens og til sløyfe. Dette har å gjøre med hvordan timesløyfen fungerer under panseret, men den brukes på samme måte en stund eller til sløyfen brukes.
#! / usr / bin / env ruby
3. ganger gjør det
setter "Dette vil bli skrevet ut 3 ganger"
slutt
skriv ut "Tast inn et nummer:"
num = gets.chomp.to_i
antall ganger
setter "Ruby is great!"
slutt
Hver sløyfe
De Hver loop er kanskje den mest nyttige av alle løkkene. Hver sløyfe vil ta en liste over variabler og kjøre en blokk med utsagn for hver av dem. Siden nesten alle dataoppgaver bruker lister over variabler og må gjøre noe med hver av dem i listen, er hver sløyfe den desidert mest vanlige sløyfen i Rubin kode. En ting å merke seg her er argumentet til loopens uttalelsesblokk. Verdien av den gjeldende variabelen sløyfen ser på, tildeles variablenavnet i rørkarakterer, som er | N | i eksemplet. Første gang løkken løper, n variabelen vil være lik "Fred", andre gang sløyfen kjører vil den være lik "Bob" og så videre.
#! / usr / bin / env ruby
# En liste med navn
names = ["Fred", "Bob", "Jim"]
names.each do | n |
setter "Hei # {n}"
slutt