R break 和 next

我们使用 R 语言的 breaknext 语句来改变程序的流程。这些在编程中也称为跳转语句。

  • break - 终止循环语句
  • next - 跳过循环的一次迭代

R break 语句

你可以在循环(forwhilerepeat)中使用 break 语句来终止循环的执行。这将停止任何进一步的迭代。

break 语句的语法是

if (test_expression) {
  break
}

break 语句通常在循环的条件(if...else)语句内部使用。如果 test_expression 中的条件返回 True,则执行 break 语句。例如:

# vector to be iterated over
x = c(1, 2, 3, 4, 5, 6, 7)

# for loop with break statement
for(i in x) {
    
    # if condition with break
    if(i == 4) {
        break
    }
    
    print(i)
}

输出

[1] 1
[1] 2
[1] 3

这里,我们定义了一个从 17 的数字向量。在 for 循环内部,我们使用 if 语句检查当前数字是否为 4

如果是,则执行 break 语句,不再进行进一步的迭代。因此,只打印数字 13


嵌套循环中的 break 语句

如果你有一个嵌套循环,并且 break 语句在内层循环中,那么只会终止内层循环的执行。

让我们看一个在嵌套循环中使用 break 语句的程序。

# vector to be iterated over
x = c(1, 2, 3)
y = c(1, 2, 3)

# nested for loop with break statement
for(i in x) {
    for (j in y) {
        if (i == 2 & j == 2) {
            break
        }
        print(paste(i, j))
    }
}

输出

[1] "1 1"
[1] "1 2"
[1] "1 3"
[1] "2 1"
[1] "3 1"
[1] "3 2"
[1] "3 3"

这里,我们在内层循环中有一个 break 语句。

我们将其用在一个条件语句中,如果两个数字都等于 2,则内层循环终止。

然后流程转移到外层循环。因此,组合 (2, 2) 从未被打印。


R next 语句

在 R 中,next 语句会跳过循环的当前迭代,并从下一次迭代开始循环。

next 语句的语法是

if (test_condition) {
  next
}

如果程序遇到 next 语句,当前迭代中任何后续的代码执行都会被跳过,并开始下一次迭代。

让我们看一个程序,它只从一个数字向量中打印偶数。

# vector to be iterated over
x = c(1, 2, 3, 4, 5, 6, 7, 8)

# for loop with next statement
for(i in x) {
    
    # if condition with next
    if(i %% 2 != 0) {
        next
    }
    
    print(i)
}

输出

[1] 2
[1] 4
[1] 6
[1] 8

这里,我们使用 if 语句检查循环中的当前数字是否为奇数。

如果是,则执行 if 块内的 next 语句,并跳过当前迭代。

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

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

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

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