Ruby break 和 next 语句

在编程中,breaknext 语句用于改变循环的流程。

  • break 语句会完全退出循环。
  • next 语句会跳过当前迭代,然后继续执行下一个迭代。

当你发现某个特定条件使得继续循环不再必要时,通常会使用 break

next 语句在需要跳过某些值时非常有用。例如,跳过无效输入、奇数或字符串中的特定字符。


Ruby break 语句

当遇到 break 语句时,它会立即终止循环。

语法

break

Ruby break 语句的工作原理

Working of break statement in Ruby
Ruby 中 break 语句的工作原理

上图显示了 break 语句在 forwhile 循环中的工作原理。

注意: break 语句通常用于决策语句中,例如 if...else


示例 1:Ruby for 循环中的 break 语句

当满足某个特定条件时,您可以使用 break 语句来终止 for 循环。例如:

for i in 1..5
  if i == 3
    break
  end
  puts i
end

输出

1
2

在上面的示例中,当 i 等于 3 时,以下代码会终止循环。

if i == 3
  break

因此,输出不包含 2 之后的值。


示例 2:Ruby while 循环中的 break 语句

您可以使用 break 语句来终止 while 循环。例如:

i = 0

while i < 10
  if i == 3
    break
  end
  puts i
  i += 1
end

输出

0
1
2

在这里,当 i 等于 3 时,break 会终止循环。


Ruby next 语句

next 语句会跳过循环的当前迭代,程序的控制流会转到下一个迭代。

语法

next

Ruby next 语句的工作原理

Working of next statement in Ruby
Ruby 中 next 语句的工作原理

示例 3:Ruby for 循环中的 next 语句

让我们看看如何在 for 循环中使用 next 语句。

for i in 1..5
  if i == 3
    next
  end
  puts i
end

输出

1
2
4
5

在上面的示例中,当 i 等于 3 时,以下代码会跳过当前迭代,并继续下一个迭代。

if i == 3
  next

因此,输出包含除了 3 之外的所有值。


示例 4:Ruby while 循环中的 next 语句

您也可以在 while 循环中使用 next 语句。例如:

i = 0

while i < 5
  i += 1
  if i == 3
    next
  end
  puts i
end

输出

1
2
4
5

在这里,当 i 等于 3 时,next 会跳过该迭代,因此不会打印。

i 的值在条件之前增加,因此当 i 变为 3 时,next 会阻止 puts i 在该循环周期中运行。


更多关于 Ruby Break 和 Next

Ruby 嵌套循环中的 break 和 next

您可以在嵌套循环中使用 breaknext 来控制内部循环的流程,而不会影响外部循环。例如:

# Nested for loops

# Outer loop
for i in 1..2
  # Inner loop
  for j in 1..3
    break if j == 2
    puts "i: #{i}, j: #{j}"
  end
end

输出

i: 1, j: 1
i: 2, j: 1

在这里,当 j == 2 时,内部循环会 break,但外部循环会继续。

Ruby case 语句(循环内)中的 break 和 next

只有当 case 是循环的一部分时,您才能在 case 语句中使用 breaknext。这是因为它们直接控制循环的流程,而不是 case 语句本身。

numbers = [1, 2, 3, 4, 5]

for num in numbers
  case num
  when 3
    # Skip this iteration when num is 3
    next     
  when 5
    # Exit the loop completely when num is 5  
    break    
  else
    puts "Printing: #{num}"
  end
end

输出

Printing: 1
Printing: 2
Printing: 4

在此示例中,当 num3 时,循环会跳过打印,当 num5 时,循环会完全退出。

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战