我们使用 R 语言的 break
和 next
语句来改变程序的流程。这些在编程中也称为跳转语句。
break
- 终止循环语句next
- 跳过循环的一次迭代
R break 语句
你可以在循环(for
、while
、repeat
)中使用 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
这里,我们定义了一个从 1
到 7
的数字向量。在 for
循环内部,我们使用 if
语句检查当前数字是否为 4
。
如果是,则执行 break
语句,不再进行进一步的迭代。因此,只打印数字 1
到 3
。
嵌套循环中的 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
语句,并跳过当前迭代。