Try   HackMD

Ruby 迴圈與迭代 Loop and Iteration

tags: Ruby

迴圈種類

  • for 迴圈
  • while 迴圈
  • loop 迴圈
  • method 式迴圈
  • 迭代式迴圈(常用)

迴圈跟迭代有什麼不同?

迴圈:你就跑個 5 圈吧!
迭代:你把這 5 個元素全部都看過一次吧!

for 迴圈

Ruby 裡沒有一般的那種 for 迴圈:

for (var i = 0; i < 10; i++) { console.log(i) }
names = ["eddie", "joanne", "john", "sherly"] for name in names puts name end

while 迴圈

x = 0 while x < 10 puts x x += 1 # 小心不要變成無窮迴圈 end

until 迴圈

until = while not
while = until not

x = 0 until x >= 10 puts x x += 1 end

loop 迴圈

i = 0 loop do puts i i += 1 break if i > 10 end

method 式迴圈

5.times do puts "hello, ruby" end 1.upto(10) do |i| puts "hello, ruby #{i}" end 10.downto(1) do |i| puts "hello, ruby #{i}" end

迭代式迴圈(常用)

each

names = ["eddie", "joanne", "john", "sherly"] names.each do |name| puts name end

each.with_index

# 外鄉人 names = ["eddie", "joanne", "john", "sherly"] x = 0 names.each do |name| puts "#{x} #{name}" x += 1 end
names = ["eddie", "joanne", "john", "sherly"] names.each.with_index do |name, x| puts "#{x} #{name}" end