While循环不会在R中中断

时间:2018-11-26 16:06:05

标签: r while-loop break

invest <- 10000 
p_value <- runif(1,0,1)

while (invest != 1000000 | invest != 0) {

    p <- rbinom(1,1,p_value)

    if (p == 0) {

    invest <- invest - 1000

    } else {

    invest <- invest + 1000

    } 

    print(invest)

}

我面临的问题是,当达到1000000或0时,while循环不会中断,并且基本上是无限运行的(打印功能仅是在测试时见证结果值的地方)。我不确定我要去哪里。任何见解均表示赞赏。

2 个答案:

答案 0 :(得分:0)

我认为您想要的是:

invest <- 10000 
p_value <- runif(1, 0, 1)
while(0 < invest && invest < 1000000){
    if(rbinom(1, 1, p_value) == 0)
        invest <- invest - 1000
    else
        invest <- invest + 1000
    cat("invest:", invest, fill=TRUE)
}

答案 1 :(得分:0)

您需要学习逻辑运算符的工作方式。

您写的是:invest is not 1000000 OR invest is not 0。总是如此。没有任何价值不能成立。

  1. 投资为0 => 0不是1000000 =>是

  2. 投资额为1000000 => 1000000不是0 =>正确

  3. invest是其他任何值=>不是1000000也不是0 => true