R 语言 For 循环
For 循环
for
循环用于对序列进行迭代:
实例
for (x in 1:10) {
print(x)
}
它不像其他编程语言中的 for
关键字,更像是其他面向对象编程语言中的迭代器方法。
使用 for
循环,我们可以为 向量、数组、列表 等中的每个项执行一组语句。
实例
打印 list 中的每一项:
fruits <- list("apple", "banana", "cherry")
for (x in fruits) {
print(x)
}
实例
打印筛子的每一个点数:
dice <- c(1, 2, 3, 4, 5, 6)
for (x in dice) {
print(x)
}
for
循环不需要预先设置索引变量,这一点和 while
循环一样。
Break 语句
使用 break
语句,我们可以在循环遍历所有项之前停止循环:
实例
当循环到 "cherry" 时停止循环:
fruits <- list("apple", "banana", "cherry")
for (x in fruits) {
if (x == "cherry") {
break
}
print(x)
}
循环将在 "cherry" 处停止,因为我们选择在 x
等于 "cherry"(x == "cherry"
)时使用 break
语句来结束循环。
Next 语句
使用 next
语句中,我们可以跳过迭代而不终止循环:
实例
跳过 "banana":
fruits <- list("apple", "banana", "cherry")
for (x in fruits) {
if (x == "banana") {
next
}
print(x)
}
当循环通过 "banana" 时,它将跳过并继续循环。
If .. Else 结合 For 循环使用
为了演示一个实际的例子,让我们假设我们玩一个 Yahtzee(快艇骰子)游戏!
实例
当筛子点数是 6 时,打印 "Yahtzee!":
dice <- 1:6
for (x in dice) {
if (x == 6) {
print(paste("The dice number is", x, "Yahtzee!"))
} else {
print(paste("The dice number is", x, "Not Yahtzee"))
}
}
如果循环到达 1 到 5 之间的值,则打印 "No Yahtzee" 以及点数值。
每当值等于 6 时,就会打印 "Yahtzee!" 以及它的点数。
嵌套循环
你也可以在一个循环中嵌套一个循环:
实例
在列表中打印每个水果的形容词:
adj <- list("red", "big", "tasty")
fruits <- list("apple", "banana", "cherry")
for (x in adj) {
for (y in fruits) {
print(paste(x, y))
}
}