进行了一段时间的循环,并且工作正常。 但是我还需要添加另一个条件。
我需要循环继续前进,直到它满足while循环,但是我还需要补充一点,这只能重复x次。
我认为你必须让for循环做x次,是否可以在这里放一个while循环?
基本上我怎样才能使循环达到目标或在x循环后停止?
答案 0 :(得分:4)
while
中的表达式需要为TRUE才能继续循环。您可以使用|
或&
添加额外条件。此循环运行99次或直到随机变量之和小于100。
counter <- 0
result <- 0
while(counter < 100 | sum(result) < 100) {
result <- sum(result, rnorm(1, mean = 5, sd = 1))
counter <- sum(counter, 1)
}
> result
[1] 101.5264
> counter
[1] 21
答案 1 :(得分:0)
只需将当前迭代器值作为参数传递给函数。这样,如果达到特定值,您可以中断递归。
但是如果使用递归,为什么还有一个while循环,例如:
add_one_recursive = function(number) {
number = number + 1
cat("New number = ", number, "\n")
if(number > 10) {
return(number)
} else {
return(add_one_recursive(number))
}
}
final_number = add_one_recursive(0)
New number = 1
New number = 2
New number = 3
New number = 4
New number = 5
New number = 6
New number = 7
New number = 8
New number = 9
New number = 10
New number = 11
根本不需要显式循环。