Kompiuterinės programos dažnai turi atlikti veiksmus keletą kartų, o ne tik vieną kartą. Pvz., Programa, kuri spausdina visus jūsų naujus el. Laiškus, turės atspausdinti kiekvieną el. Laišką iš sąrašo, o ne tik vieną. Norėdami tai padaryti, naudojamos konstrukcijos, vadinamos kilpomis. Kilpa pakartos teiginius jo viduje keletą kartų, kol bus įvykdyta tam tikra sąlyga.
Nors kilpos
Pirmasis šių kilpų tipas yra tam tikra kilpa. Nors kilpos vykdys visus juose esančius teiginius tol, kol sąlyginis teiginys išliks teisingas. Šiame pavyzdyje kilpa nuolat didina kintamojo vertę i viena. Kol sąlyginis teiginys i <10 tiesa, kilpa toliau vykdys pareiškimą i + = 1 kuris prideda vieną prie kintamojo.
#! / usr / bin / env rubinas
i = 0
o i <10
i + = 1
galas
kelia i
Iki kilpų
Kol kilpos bus beveik identiškos tuo metu, kai kilpos, išskyrus tai, kad jos bus kilpos tol, kol bus sąlyginis sakinys melagingas. Kol kilpa bus kilpa, kol būsena bus tikra, tol, kol kilpa bus kilpa iki sąlyga teisinga. Šis pavyzdys yra funkcijų „loop“ pavyzdžio ekvivalentas, išskyrus „loop“ naudojimo,
kol i == 10 . Kintamasis padidinamas vienu, kol jo vertė lygi dešimčiai.#! / usr / bin / env rubinas
i = 0
kol i == 10
i + = 1
galas
kelia i
„Ruby Way“
Nors „Ruby“ programose ir tol, kol kilpos yra naudojamos tradiciškiau, dažniausiai yra dažniausiai naudojamos uždaros kilpos. Net nereikia suprasti, kas yra uždarymai ar kaip jie veikia, kad būtų galima naudoti šias kilpas; iš tikrųjų į juos žiūrima kaip į įprastas kilpas, nepaisant to, kad jie labai skiriasi po gaubtu.
„The Times Loop“
laikai kilpa gali būti naudojama bet kuriam kintamajam, kuriame yra skaičius, arba naudojama pačiam skaičiui. Toliau pateiktame pavyzdyje pirmoji kilpa paleidžiama 3 kartus, o antroji kilpa paleidžiama, tačiau daug kartų įveda vartotojas. Jei įvestumėte 12, jis veiktų 12 kartų. Pastebėsite, kad laiko kilpa naudoja tašką sintaksė (3 kartus tai padaro), o ne raktinių žodžių sintaksę, naudojamą tuo metu ir iki ciklo. Tai turi būti susiję su tuo, kaip laiko kilpa veikia po gaubtu, tačiau ji naudojama tuo pačiu būdu tam tikrą laiką arba tol, kol bus naudojama kilpa.
#! / usr / bin / env rubinas
3. kartus padaryti
pateikia „Tai bus atspausdinta 3 kartus“
galas
spausdinti "Įveskite numerį:"
num = gauna.chomp.to_i
num.times daryti
iškelia „Rubinas yra puiku!“
galas
Kiekviena kilpa
kiekviena kilpa yra turbūt naudingiausia iš visų kilpų. Kiekviena kilpa pateiks kintamųjų sąrašą ir kiekvienam iš jų vykdys teiginių bloką. Kadangi beveik visose skaičiavimo užduotyse naudojami kintamųjų sąrašai ir jie turi ką nors daryti su kiekviena iš jų sąraše, kiekviena kilpa yra pati dažniausia kilpa Rubino kodas. Čia reikėtų atkreipti dėmesį į vieną teiginio bloko argumentą. Dabartinio kintamojo, į kurį žiūrima kilpa, vertė priskiriama kintamojo pavadinimui vamzdžių simboliais, tai yra | n | pavyzdyje. Pirmą kartą paleidus kilpą, n kintamasis bus lygus „Fredui“, antrą kartą kilpai bėgant, jis bus lygus „Bobui“ ir pan.
#! / usr / bin / env rubinas
# Vardų sąrašas
vardai = [„Fredis“, „Bobas“, „Džimas“]
vardai.ir visi padaryti | n |
iškelia „Labas # {n}“
galas