跳到主要内容

R 语言 - 循环语句

在 R 语言中,有两种循环语句:

  • while 循环语句
  • for 循环语句

只要达到指定的条件,循环就可以执行一段代码。

由于循环可以节省时间、减少错误并使代码更具可读性,因此在程序设计中使用非常广泛。

While 循环

使用 while 循环,只要条件为真,我们就可以执行一组语句。

例如,只要 i 小于 6,就打印 i 的值:

i <- 1
while (i < 6) {
print(i)
i <- i + 1
}

在上面的示例中,循环将继续生成 1 到 5 之间的数字。循环将在 6 处停止,因为 6 < 6 为 FALSE。

while 循环中,你需要提前准备好相关变量,例如在本例中我们需要定义一个索引变量 i,我们将其设置为 1。

注意:记得增加 i,否则循环将永远持续下去。

Break 语句

使用 break 语句,即使 while 条件为真,我们也可以停止循环。

例如:如果 i 等于 4,则退出循环

i <- 1
while (i < 6) {
print(i)
i <- i + 1
if (i == 4) {
break
}
}

循环将在 3 处停止,因为我们选择在 i 等于 4 (i == 4) 时使用 break 语句结束循环。

Next 语句

使用 next 语句,我们可以在不终止循环的情况下跳过迭代。

例如:跳过 i 等于 3 的情况

i <- 0
while (i < 6) {
i <- i + 1
if (i == 3) {
next
}
print(i)
}

当循环经过值 3 时,会跳过它继续循环。

For 循环

在 R 语言中,for 循环用于迭代序列,写法比 while 循环更为简洁。

for (x in 1:10) {
print(x)
}

这不太像其他编程语言中的 for 关键字,而更像是其他面向对象编程语言中的迭代器方法。

使用 for 循环,我们可以执行一组语句,对向量(vector)、数组(array)、列表(list)等中的每个项目执行一次。

这里简单列举两个示例,你可以在后面的《R 语言 - 列表》和《R 语言 - 向量》等章节中学习更多相关内容。

示例1:打印列表中的每一项

fruits <- list("apple", "banana", "cherry")

for (x in fruits) {
print(x)
}

示例2:打印骰子的数值

dice <- c(1, 2, 3, 4, 5, 6)

for (x in dice) {
print(x)
}

提示:for 循环不需要像while 循环那样预先设置索引变量。

Break 语句

使用 break 语句,我们可以在循环遍历所有项目之前停止循环。

例如:在“樱桃”处停止循环

fruits <- list("apple", "banana", "cherry")

for (x in fruits) {
if (x == "cherry") {
break
}
print(x)
}

循环将在“cherry”处停止,因为我们选择了在 x 等于“cherry”时使用 break 语句来结束循环 (x == "cherry")。

Next 语句

使用 next 语句,我们可以在不终止循环的情况下跳过迭代。

例如:跳过“香蕉”

fruits <- list("apple", "banana", "cherry")

for (x in fruits) {
if (x == "banana") {
next
}
print(x)
}

当循环经过“banana”时,会跳过它继续循环。