因為重複的代碼可以不用一直寫,只要寫好一個迴圈就可以設定他跑十次,最後的結果是一樣的,但可以少寫很多 code。
names = ["eddie","joanne","john","sherly"]
for name in names
puts name
end
#設一個變數name一圈一個把names裡面的東西印出來。
for i in 1..10
puts i
end
x = 0
while x < 10
puts x
x += 1 #改變條件
end
#一開始x設為0,當x小於10時會印出來0,在印出來後改變條件,變成x=1,一直重複直到x=10。
邪惡分身 until,while not = until
i = 0
loop do
puts i
i += 1
break if i > 10 #break 結束這回合
end
#一開始設i為0,先印出來再改變變數,後設條件。
#跟while差在一個先設條件符合條件在執行,loop是你先執行,條件不符在跳出。
do..end
或是{}
這個叫做 Block(程式碼區塊)
5.times do
puts "hello,ruby"
end
#意思是我要印5次hello,ruby。
1.upto(10) do |i|
puts "hello,ruby #{i}"
end
#把數字1到10放進絕對值裡,再帶進${}裡,每次印出hello,ruby時後面的數字會從1到10跟隨印出結束。
10.downto(1) do |i|
puts "hello,ruby #{i}"
end
#把數字10到1放進絕對值裡,再帶進${}裡,每次印出hello,ruby時後面的數字會從10到1跟隨印出結束。
names = ["eddie","joanne","john","sherly"]
names.each do |name|
puts name
end
#把names裡的元素丟出來給name這個變數,並把它印出來。
names = ["eddie","joanne","john","sherly"]
names.each.with_index do |name,x|
puts "#{x} #{name}"
end
#把names裡的每個元素丟出來給name這個變數,再把每個元素的索引值丟給x這個變數,一起印出來。