Comment avoir deux conditions dans une boucle While?

Fondamentalement, j'ai deux boucles while dans mon code. Tout ce qu'ils font est de comptage par incréments de 1, 0 à 10 ou -10. Les vecteurs qui comptent sont "count1" et "count2". Ce qui se passe dans mon code en deux boucles while. Cependant, j'ai maintenant besoin de chaque comptage, dépendent les uns des autres, donc j'ai besoin d'eux dans la même boucle. Est-il possible d'avoir les deux, tandis que les conditions de travail dans une boucle.
Par exemple, ce que j'ai maintenant est:

  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)

}

Mais je veux quelque chose comme

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)

 }

Mon "si" code est supposé d'avoir seulement le comte se produire lorsque l'objet n'a pas atteint les 10 ou -10. E. G. count2 comptera tout de même vers le haut ou vers le bas, même lorsque count1 a fini. Mon code ne fonctionne pas et je ne suis pas à la recherche d'une réponse, mais plus une raison pour expliquer pourquoi il ne le fait pas. En gardant à l'esprit que je suis très nouveau à la R et je m'excuse à l'avance si cette question est triviale :p.

Pour quiconque vous demandez-vous, la raison pour laquelle j'ai besoin d'eux dans la même boucle est parce que je suis à la recherche de quelque chose comme: si count1 augmente que count2 diminue.

Grâce

  • Votre if déclarations ne sont pas nécessaires, car ils seront toujours TRUE à l'intérieur de votre while boucle.
  • Que faire si count1 atteint 10 ou -10, et count2 n'a pas. Ne qui donnent à leur utilisation? Ou suis-je en voyant que c'est mal. Merci pour la réponse.
  • Vous souhaitez utiliser || pas &&
  • si count1 atteint 10 ou -10, la déclaration (count1 & count2 < 10 && count1 & count2 > -10) sera FALSE
  • Je vois. C'est pourquoi ma boucle se termine lorsque l'un comte de finitions. Donc, ma question est dans ma condition du while.
InformationsquelleAutor Gabriel | 2014-01-23