写ref="/tag/2028/" style="color:#E3A3CF;font-weight:bold;">Ruby脚本时,经常要处理重复任务,比如遍历文件、处理数据列表。这时候,循环就派上用场了。Ruby提供了多种写法,既灵活又直观,掌握几种常用的,日常开发基本就够用了。
最基础的 while 循环
while 是最直白的循环方式,条件为真就一直执行。比如想打印数字1到5,可以这样写:
i = 1
while i <= 5
puts i
i += 1
end
更常见的 for 循环
在Ruby里,for通常配合范围(range)使用,写起来更简洁。还是打印1到5:
for i in 1..5
puts i
end
注意,这里的 1..5 表示包含5,如果写成 1...5 就不包含5,只到4为止。
更Ruby风的 each 方法
Ruby程序员更喜欢用 each,它属于迭代器,代码读起来像自然语言。比如遍历数组:
names = ['小明', '小红', '小刚']
names.each do |name|
puts "你好,#{name}!"
end
这种写法不仅清晰,还避免了手动管理索引变量,不容易出错。
until:和 while 反着来
如果你希望条件为“假”时才继续循环,可以用 until。比如等待用户输入“quit”之前一直提示:
input = ""
until input == "quit"
print "输入命令(输入quit退出): "
input = gets.chomp
end
实用技巧:跳出或跳过
有时候不需要走完整个循环。用 break 可以直接退出,next 则是跳过当前这一次。比如处理一批数字,遇到负数就跳过,遇到0就停止:
numbers = [2, 4, -1, 6, 0, 8]
numbers.each do |n|
break if n == 0
next if n < 0
puts "正数:#{n}"
end
这些写法在写自动化脚本、日志分析工具或者批量重命名文件时特别实用。选哪种主要看习惯和场景,但多用 each 会让你的Ruby代码看起来更地道。