Jam*_*mes 13
命令的语法可以在以下位置看到?Control:
while(cond) expr
repeat expr
Run Code Online (Sandbox Code Playgroud)
这清楚地表明,while测试条件以确定何时完成循环,但repeat需要您自己显式break循环,并且可以在循环体中的任何位置.根据您放置break语句的位置,repeat可以执行迭代的其他部分while.
考虑同一循环的这两种形式:
i <- 0
repeat {if (i==2) break;print(i);i<-i+1}
[1] 0
[1] 1
i
[1] 2
i <- 0
while (i!=2) {print(i);i<-i+1}
[1] 0
[1] 1
i
[1] 2
Run Code Online (Sandbox Code Playgroud)
在不特定的上下文中R,repeat循环在每次迭代结束时检查条件,而while循环在每次迭代开始时检查它.因此,repeat循环执行至少一次迭代,而while如果不满足条件,则循环可能不执行任何迭代.这就是区别.