【发布时间】:2019-12-23 01:16:37
【问题描述】:
考虑以下 R 中的玩具示例:
#For loop
i <- 1
for(i in 1:10){
print(i)
if(i == 5){
i <- 8
next
}
}
#For loop output
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
#While loop
i <- 1
while (i <= 10){
print(i)
if(i == 5){
i <- 8
next
}
i <- i + 1
}
#While loop output
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 8
[1] 9
[1] 10
在上述两个示例中,当循环体内的条件语句被评估为TRUE (if(i == 5)) 时,会尝试更改循环索引/计数器。但是,这似乎只在while 循环中有效,而在for 循环中无效。
为什么会这样?
更具体地说,?control 对for 循环的索引有这样的看法(下面引用中的var):
你可以在循环体中赋值给 var,但这不会 影响下一次迭代。
为什么 for 结构需要这样做,而 while 结构不需要?
【问题讨论】:
标签: r for-loop while-loop control-flow