R 语言 For 循环

For 循环

for 循环用于对序列进行迭代:

实例
  1. for (x in 1:10) {
  2. print(x)
  3. }

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

使用 for 循环,我们可以为 向量数组列表 等中的每个项执行一组语句。

实例

打印 list 中的每一项:

  1. fruits <- list("apple", "banana", "cherry")
  2. for (x in fruits) {
  3. print(x)
  4. }
实例

打印筛子的每一个点数:

  1. dice <- c(1, 2, 3, 4, 5, 6)
  2. for (x in dice) {
  3. print(x)
  4. }

for 循环不需要预先设置索引变量,这一点和 while 循环一样。


Break 语句

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

实例

当循环到 "cherry" 时停止循环:

  1. fruits <- list("apple", "banana", "cherry")
  2. for (x in fruits) {
  3. if (x == "cherry") {
  4. break
  5. }
  6. print(x)
  7. }

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


Next 语句

使用 next 语句中,我们可以跳过迭代而不终止循环:

实例

跳过 "banana":

  1. fruits <- list("apple", "banana", "cherry")
  2. for (x in fruits) {
  3. if (x == "banana") {
  4. next
  5. }
  6. print(x)
  7. }

当循环通过 "banana" 时,它将跳过并继续循环。


If .. Else 结合 For 循环使用

为了演示一个实际的例子,让我们假设我们玩一个 Yahtzee(快艇骰子)游戏!

实例

当筛子点数是 6 时,打印 "Yahtzee!":

  1. dice <- 1:6
  2. for (x in dice) {
  3. if (x == 6) {
  4. print(paste("The dice number is", x, "Yahtzee!"))
  5. } else {
  6. print(paste("The dice number is", x, "Not Yahtzee"))
  7. }
  8. }

如果循环到达 1 到 5 之间的值,则打印 "No Yahtzee" 以及点数值。

每当值等于 6 时,就会打印 "Yahtzee!" 以及它的点数。


嵌套循环

你也可以在一个循环中嵌套一个循环:

实例

在列表中打印每个水果的形容词:

  1. adj <- list("red", "big", "tasty")
  2. fruits <- list("apple", "banana", "cherry")
  3. for (x in adj) {
  4. for (y in fruits) {
  5. print(paste(x, y))
  6. }
  7. }