Как да използвате контури в програмирането на Ruby

Компютърните програми често трябва да изпълняват действия няколко пъти, а не само веднъж. Например програма, която отпечатва целия ви нов имейл, ще трябва да отпечата всеки имейл от списък, а не само един имейл. За целта се използват конструкции, наречени бримки. Цикъл ще повтори изявления вътре в нея няколко пъти, докато се изпълни някакво условие.

Докато Loops

Първият тип на тези бримки е цикъл за време. Докато цикълите ще изпълняват всички изрази, съдържащи се в тях, стига условното изявление да остане вярно. В този пример цикълът непрекъснато увеличава стойността на променливата аз от един. Стига условното изявление i <10 е вярно, цикълът ще продължи да изпълнява оператора i + = 1 което добавя едно към променливата.

#! / usr / bin / env рубин
i = 0
докато аз <10
i + = 1
край
поставя i

До цикъл

Докато контурите не са почти идентични с циклите, докато цикълът, с изключение на това, че те ще цикъл, доколкото е условното изявление фалшив. Докато цикълът ще цикъл, докато условието е вярно, цикълът до цикъл

instagram viewer
до условието е вярно. Този пример е функционалният еквивалент на примера на цикъл while, с изключение на използването на цикъл до, докато i == 10 . Променливата се увеличава с единица, докато нейната стойност е равна на десет.

#! / usr / bin / env рубин
i = 0
докато i == 10
i + = 1
край
поставя i

Примката "Ruby Way"

Въпреки че по-традиционните, докато и докато цикли се използват в Ruby програми, цикли на базата на затваряне са по-често срещани. Дори не е необходимо да се разбере какво са затварянията или как работят, за да се използват тези контури; всъщност те се разглеждат като нормални контури, въпреки че са много различни под капака.

The Times Loop

Най- пъти цикъл може да се използва за всяка променлива, съдържаща число, или да се използва за самото число. В следващия пример, първият цикъл се изпълнява 3 пъти, а вторият цикъл се изпълнява, но многократно се въвежда от потребителя. Ако въведете 12, той ще работи 12 пъти. Ще забележите, че цикълът за време използва точката синтаксис (3. пъти), а не синтаксиса на ключовите думи, използван от цикълът while и до. Това е свързано с това как работи цикълът за време под капака, но се използва по същия начин известно време или докато се използва цикъл.

#! / usr / bin / env рубин
3. пъти правя
поставя "Това ще бъде отпечатано 3 пъти"
край
печат "Въведете номер:"
num = get.chomp.to_i
num.times правят
поставя "Руби е страхотно!"
край

Всеки цикъл

Най- всеки loop е може би най-полезният от всички бримки. Всеки цикъл ще вземе списък от променливи и ще изпълни блок от оператори за всяка от тях. Тъй като почти всички изчислителни задачи използват списъци с променливи и трябва да правят нещо с всяка от тях в списъка, всеки цикъл е най-често срещаният цикъл в Ruby код. Едно нещо, което трябва да се отбележи тук, е аргументът на блока от операции на цикъла. Стойността на текущата променлива, която цикълът гледа, е присвоена на името на променливата в символите на тръбата, което е | П | в примера. Първият път, когато цикълът работи, н променлива ще бъде равна на "Фред", вторият път, когато цикълът работи, ще бъде равен на "Боб" и така нататък.

#! / usr / bin / env рубин
# Списък с имена
имена = [„Фред“, „Боб“, „Джим“]
names.each do | n |
поставя "Здравей # {n}"
край