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 toujoursTRUE
à l'intérieur de votrewhile
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.
Vous devez vous connecter pour publier un commentaire.
Je suis en supposant que, à partir de votre pseudo code, que vous êtes désireux de vous assurer que les deux count1 et count2 sont à moins de 10 et que count1 et count2 sont supérieures à -10. Ce que je voudrais faire est de quelque chose comme ceci:
Vous ne devriez pas besoin de groupe de avec la parenthèse, puisque tout ce qui est ANDed ensemble et il n'est pas mélangé logique.