Ruby循环语句怎么写:常用写法一网打尽

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代码看起来更地道。