Kaip naudoti kilpas Ruby
Tor Piyapalakorn / EyeEm / Getty Images
Kompiuterinės programos dažnai turi atlikti veiksmus keletą kartų, o ne vieną kartą. Pavyzdžiui, programa, spausdinanti visus naujus el. laiškus, turės išspausdinti kiekvieną el. laišką iš sąrašo, o ne tik vieną el. laišką. Tam naudojamos konstrukcijos, vadinamos kilpomis. Ciklas pakartos pareiškimus jo viduje keletą kartų, kol įvykdoma kokia nors sąlyga.
Nors kilpos
Pirmasis šių kilpų tipas yra trumpoji kilpa. Nors kilpos vykdys visus jose esančius teiginius tol, kol sąlyginis sakinys išliks teisingas. Šiame pavyzdyje ciklas nuolat didina kintamojo reikšmę i vienu. Kol sąlyginis teiginys i<10 tiesa, ciklas tęs teiginio vykdymą i += 1 kuri prideda vieną prie kintamojo.
#!/usr/bin/env ruby
i = 0
kol aš<10
i += 1
pabaiga
deda i
Iki kilpų
Iki kilpos yra beveik identiškos while kilpoms, išskyrus tai, kad jos bus kilpos tol, kol sąlyginis sakinys bus klaidinga . Ciklas while bus kilpa, kol sąlyga yra teisinga, o ciklas iki bus kilpa iki sąlyga yra teisinga. Šis pavyzdys yra funkcinis while ciklo pavyzdžio atitikmuo, išskyrus ciklo iki naudojimą, iki i == 10 . Kintamasis didinamas vienu, kol jo reikšmė lygi dešimčiai.
#!/usr/bin/env ruby
i = 0
iki i == 10
i += 1
pabaiga
deda i
Sukasi „Ruby Way“
Nors Ruby programose naudojamos tradiciškesnės while ir till kilpos, uždarymo kilpos yra labiau paplitusios. Norint naudoti šias kilpas, net nebūtina suprasti, kas yra uždarymai arba kaip jie veikia; Tiesą sakant, jie laikomi įprastomis kilpomis, nepaisant to, kad po gaubtu jie labai skiriasi.
„The Times Loop“.
The laikai ciklas gali būti naudojamas bet kuriame kintamajame, kuriame yra skaičius, arba pačiam skaičiui. Toliau pateiktame pavyzdyje pirmoji ciklas vykdomas 3 kartus, o antrasis ciklas vykdomas, tačiau daug kartų ją įveda vartotojas. Jei įvesite 12, jis bus paleistas 12 kartų. Pastebėsite, kad laiko ciklas naudoja tašką sintaksė (3.time do), o ne raktinio žodžio sintaksė, kurią naudoja ciklas while ir till. Tai susiję su tuo, kaip laiko kilpa veikia po gaubtu, tačiau jis naudojamas taip pat kurį laiką arba tol, kol bus naudojama kilpa.
#!/usr/bin/env ruby
3.kartu daryti
įdeda 'Tai bus spausdinama 3 kartus'
pabaiga
spausdinti 'Įveskite numerį:'
skaičius = gets.chomp.to_i
num.kartų daryti
įdeda 'Ruby yra puikus!'
pabaiga
Kiekviena kilpa
The kiekviena kilpa yra bene naudingiausia iš visų kilpų. Kiekviena kilpa paims kintamųjų sąrašą ir vykdys teiginių bloką kiekvienam iš jų. Kadangi beveik visos skaičiavimo užduotys naudoja kintamųjų sąrašus ir turi ką nors daryti su kiekvienu iš jų sąraše, kiekviena kilpa yra labiausiai paplitusi ciklas. Rubino kodas . Vienas dalykas, į kurį reikia atkreipti dėmesį, yra kilpos teiginių bloko argumentas. Dabartinio kintamojo, į kurį žiūri kilpa, reikšmė priskiriama kintamojo pavadinimui vamzdžio simboliais, kurie yra |n| pavyzdyje. Pirmą kartą paleidus kilpą, n kintamasis bus lygus „Fred“, antrą kartą paleidus kilpą, jis bus lygus „Bob“ ir pan.
#!/usr/bin/env ruby
# Vardų sąrašas
vardai = [ 'Fred', 'Bob', 'Jim']
vardai.kiekvienas daro|n|
įdeda 'Sveiki #{n}'
pabaiga