如何在While循环中有两个条件?

时间:2014-01-23 01:27:59

标签: r while-loop

基本上我的代码中有两个while循环。他们所做的只是以1为增量从0到10或-10。计数的向量是“count1”和“count2”。这是在我的代码中发生在两个单独的while循环中。但是,我现在需要每个计数彼此依赖,所以我需要在同一个循环中。是否有可能让两个独立的条件在一个循环中工作。 例如,我现在拥有的是:

  count1 = 0
  count2 = 0
  l_RWM = vector()
  r_RWM = vector()      


while (count1 < 10 && count1 > -10){

  count1 = count1 + (sample(c(1,-1), 1, prob = c(.55,.45)))

  l_RWM = append(l_RWM,count1)

}

while (count2 < 10 && count2 > -10){

  count2 = count2 + (sample(c(1,-1), 1, prob = c(.55,.45)))

  r_RWM = append(r_RWM,count2)

}

但我想要像

这样的东西
while (count1&count2 < 10 && count1&count2 > -10){

if(count1 < 10 && count1 > -10) count1 = count1 + (sample(c(1,-1), 1, prob = c(.55,.45)))
    else count1 = count1

  if(count2 < 10 && count2 > -10) count2 = count2 + (sample(c(1,-1), 1, prob = c(.55,.45)))
    else count2 = count2

    l_RWM = append(l_RWM,count1)
    r_RWM = append(r_RWM,count2)

 }

我的“if”代码应该仅在对象未达到10或-10时才进行计数。例如。即使count1完成,count2仍会向上或向下计数。我的代码不起作用,我不是在寻找答案,而是为什么不这样做的原因。请记住,我对R很新,如果这个问题很简单,我会事先道歉:p。

对于任何想知道的人,我在同一个循环中需要它们的原因是因为我希望有类似的东西:如果count1增加而不是count2减少。

由于

1 个答案:

答案 0 :(得分:2)

我假设,从您的伪代码中,您只是想确保count1和count2都小于10并且count1和count2大于-10。我会做的是这样的事情:

while (count1 < 10 && count2 < 10 && count1 > -10 && count2 > -10){

你不需要用括号对任何东西进行分组,因为所有东西都是AND,并且没有混合逻辑。