Probleme de boucle infini
Résolu
varfendell
Messages postés
3259
Date d'inscription
Statut
Membre
Dernière intervention
-
Marco la baraque Messages postés 1030 Statut Contributeur -
Marco la baraque Messages postés 1030 Statut Contributeur -
Bonjour,
j'ai un petit souci:
j'ai fait une boucle do{}while{}
mais les element mis dans le while ne sont pas pris en compte :(
j'ai un petit souci:
j'ai fait une boucle do{}while{}
mais les element mis dans le while ne sont pas pris en compte :(
do
{
//choix de la nouvelle case:
x = (rand() % 8);
if ( ((bugi + imove[x])<= m) && ((bugi + imove[x])>= 0) && ((bugj + jmove[x])<= n) && ((bugj + jmove[x])>= 0) )
{
bugi = bugi + imove[x];
bugj = bugj + jmove[x];
tab[bugi-1][bugj-1]++;
nbdeplacement++;
}
test = 0;
for (i = 0; i <= m-1; i++)
{
for (j = 0; j <= n-1; j++)
{
if (tab[i][j] == 0)
{
test = 1;
}
}
}
} while (test = 1 || nbdeplacement <= 10);
A voir également:
- Probleme de boucle infini
- Utiliser ticket kadéos infini sur internet ✓ - Forum Consommation & Internet
- Symbole infini clavier - Guide
- Kadeos infini amazon - Forum Consommation & Internet
- Logitech g hub chargement infini - Forum Logiciels
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
4 réponses
Bonjour,
Essaie avec while (test == 1 || nbdeplacement <= 10);
test = 1 c'est une affectation, donc c'est toujours vrai (et donc ta condition OR est vérifiée, d'où la boucle infinie).
Cordialement,
Essaie avec while (test == 1 || nbdeplacement <= 10);
test = 1 c'est une affectation, donc c'est toujours vrai (et donc ta condition OR est vérifiée, d'où la boucle infinie).
Cordialement,
wow, sa marche, c'était tout con. merci beaucoup.
par contre la deuxième condition n'intervient hélas pas, tu sais pourquoi?
j'ai mis si il y a plus de 10 déplacement, on arrête la boucle, et la boucle continu alors que les dix déplacement on été fait :s
par contre la deuxième condition n'intervient hélas pas, tu sais pourquoi?
j'ai mis si il y a plus de 10 déplacement, on arrête la boucle, et la boucle continu alors que les dix déplacement on été fait :s
Euh, en mettant un && à la place du ||.
Ta condition ici peut se traduire par "tant que test égal 1 , ou que le nombre de déplacements est inférieur ou égal à 10, je continue ma boucle".
Si ton test vaut 1, ta boucle va continuer (même si ton nombre de déplacements est supérieur à 10, ce qui n'arrivera pas avec un &&).
Cordialement,
Ta condition ici peut se traduire par "tant que test égal 1 , ou que le nombre de déplacements est inférieur ou égal à 10, je continue ma boucle".
Si ton test vaut 1, ta boucle va continuer (même si ton nombre de déplacements est supérieur à 10, ce qui n'arrivera pas avec un &&).
Cordialement,