📅  最后修改于: 2023-12-03 15:19:51.856000             🧑  作者: Mango
在 Ruby 中,for 循环用于遍历集合或区间并在每次迭代中执行一个代码块。
for element in collection
# 代码块
end
其中,element
是在循环中使用的变量,它会依次被赋值为 collection
中的每个元素。collection
可以是数组、哈希表等可迭代对象,也可以是一个范围。
# 遍历数组
fruits = ['apple', 'banana', 'orange']
for fruit in fruits
puts "I like #{fruit}!"
end
# 遍历哈希表
ages = {
'Alice' => 25,
'Bob' => 30,
'Charlie' => 35
}
for name, age in ages
puts "#{name} is #{age} years old."
end
# 遍历整数范围
for i in 1..5
puts "Counting: #{i}"
end
输出结果:
I like apple!
I like banana!
I like orange!
Alice is 25 years old.
Bob is 30 years old.
Charlie is 35 years old.
Counting: 1
Counting: 2
Counting: 3
Counting: 4
Counting: 5
在 for 循环中可以使用 break
和 next
进行循环控制。其中,break
可以立即退出循环,next
可以跳过本次迭代。
# break 例子
for i in 1..5
puts "Counting: #{i}"
if i == 3
break
end
end
# next 例子
for i in 1..5
if i == 3
next
end
puts "Counting: #{i}"
end
输出结果:
Counting: 1
Counting: 2
Counting: 3
Counting: 1
Counting: 2
Counting: 4
Counting: 5
for 循环本质上是对 each 方法的语法糖。因此,我们也可以使用 each 方法进行迭代,通常更加灵活。
fruits = ['apple', 'banana', 'orange']
fruits.each do |fruit|
puts "I like #{fruit}!"
end
ages = {
'Alice' => 25,
'Bob' => 30,
'Charlie' => 35
}
ages.each do |name, age|
puts "#{name} is #{age} years old."
end
(1..5).each do |i|
puts "Counting: #{i}"
end
输出结果与之前相同。