R中的重复循环与?

时间:2015-03-23 16:33:42

标签: r

我想知道" while"之间的区别是什么?循环与"重复"除了语法之外,在R中循环。在决定使用哪一个时,是否应该留意哪些具体情况? (例如,差异类似于使用" for" for循环功能与apply循环?)

从我对文档的阅读中,我更倾向于使用while循环,因为中断条件就在"而#34;命令,虽然我猜是"重复"循环似乎更灵活。

最佳, 本

3 个答案:

答案 0 :(得分:11)

可以在?Control

中看到命令的语法
while(cond) expr
repeat expr

这清楚表明while测试条件以确定何时完成循环,但repeat要求您自己明确break循环,并且可以在任何时候循环体。根据{{​​1}}语句的放置位置,与break相比,repeat可能会执行迭代的其他部分。

考虑同一循环的这两种形式:

while

答案 1 :(得分:5)

在不特定于R的上下文中,repeat循环在每次迭代结束时检查条件,而while循环在每次迭代开始时检查它。因此,repeat循环执行至少一次迭代,而while循环可能不执行任何迭代,如果条件未满足。这就是区别。

答案 2 :(得分:1)

重复循环 Repeat循环一次又一次执行相同的代码,直到满足停止条件为止。 这意味着在重复循环中,循环内部存在停止条件。 例如:

   v <- c("Hello","loop")
cnt <- 2

repeat {
   print(v)
   cnt <- cnt+1

   if(cnt > 5) {
      break
   }
}

输出为

  [1] "Hello" "loop" 
[1] "Hello" "loop" 
[1] "Hello" "loop" 
[1] "Hello" "loop" 

在上面的示例中,停止条件即if(cnt > 5){break}存在于重复循环本身内部。

同时循环 While循环一次又一次执行相同的代码,直到满足停止条件为止。 例如:

   v <- c("Hello","while loop")
cnt <- 2

while (cnt < 7) {
   print(v)
   cnt = cnt + 1
}

输出为

 [1] "Hello"  "while loop"
[1] "Hello"  "while loop"
[1] "Hello"  "while loop"
[1] "Hello"  "while loop"
[1] "Hello"  "while loop

while循环中,如果满足条件,则它将进入循环并执行代码。 但是在 repeat循环中,它重复执行块内的代码,直到满足停止条件为止。