如何在Ruby中使用循環(huán)
計(jì)算機(jī)程序通常必須多次執(zhí)行操作,而不僅僅是一次。例如,打印所有新電子郵件的程序需要從列表中打印每個(gè)電子郵件,而不僅僅是一封電子郵件。為此,使用稱(chēng)為循環(huán)的構(gòu)造。循環(huán)將重復(fù)其中的語(yǔ)句多次,直到滿足某個(gè)條件為止。
While loop
這些循環(huán)的第一種類(lèi)型是一個(gè)循環(huán)。只要條件語(yǔ)句保持為true,循環(huán)將執(zhí)行其中包含的所有語(yǔ)句。在這個(gè)例子中,循環(huán)不斷地將變量i的值增加一個(gè)。只要條件語(yǔ)句i為真,循環(huán)將繼續(xù)執(zhí)行語(yǔ)句i+=1,該語(yǔ)句將為變量添加一個(gè)。
#!/usr/bin/env ruby
i=0
科普期刊,而ii+=1
end
放置i
直到循環(huán)
直到循環(huán)幾乎與while循環(huán)相同,只是只要條件語(yǔ)句false,它們就會(huì)循環(huán)。while循環(huán)將在條件為真時(shí)循環(huán),直到循環(huán)將循環(huán)直到條件為真。這個(gè)例子是while-loop例子的功能等價(jià)物,除了使用直到循環(huán),直到i==10。變量遞增1,直到其值等于10。
#!/usr/bin/env ruby
i=0
直到i==10
i+=1
end
放置i
循環(huán)"紅寶石路"
盡管在Ruby程序中使用了更傳統(tǒng)的前后循環(huán),但基于閉包的循環(huán)更為常見(jiàn)。它不是'甚至有必要了解閉合是什么或它們?nèi)绾喂ぷ饕允褂眠@些循環(huán);事實(shí)上,它們'盡管在引擎蓋下有很大不同,但它們被重新視為正常循環(huán)。
時(shí)間循環(huán)
times循環(huán)可用于包含數(shù)字或數(shù)字的任何變量ber本身。在下面的示例中,第一個(gè)循環(huán)運(yùn)行3次,第二個(gè)循環(huán)運(yùn)行,但用戶(hù)輸入多次。如果輸入12,它將運(yùn)行12次。您'請(qǐng)注意,times循環(huán)使用點(diǎn)語(yǔ)法(3.times do),而不是while-and-until循環(huán)使用的關(guān)鍵字語(yǔ)法。這與times loop如何在引擎蓋下工作有關(guān),但它和#39;以相同的方式使用,直到使用loop。
#!/usr/bin/env ruby
3.TIME do
puts"將打印3次"
end
print"輸入數(shù)字:&35; 34;
num=gets.chomp.to?我
次數(shù)做
puts"紅寶石很棒!"
結(jié)束
The Each Loop
each循環(huán)可能是所有循環(huán)中最有用的。每個(gè)循環(huán)將獲取一個(gè)變量列表,并為每個(gè)變量運(yùn)行一組語(yǔ)句。由于幾乎所有的計(jì)算任務(wù)都使用變量列表,并且必須對(duì)列表中的每個(gè)變量做些事情,因此每個(gè)循環(huán)都是Ruby代碼中最常見(jiàn)的循環(huán)。這里要注意的一點(diǎn)是循環(huán)'s語(yǔ)句塊的參數(shù)。循環(huán)正在查看的當(dāng)前變量的值被分配給管道字符中的變量名稱(chēng),在示例中為| n |。循環(huán)運(yùn)行的第一次,n變量將等于"Fred,"循環(huán)運(yùn)行的第二次將等于"Bob"等等。
#!/usr/bin/env ruby
#名稱(chēng)列表
名稱(chēng)=["Fred","Bob","Jim"]
姓名做| n |
放置"Hello#{n}"
結(jié)束