TP6 Q3 boucle while

Programmation Avancée

Modérateur : Douin

Timonnier
Messages : 9
Inscription : 21 oct. 2018 0:45

TP6 Q3 boucle while

Message par Timonnier » 21 nov. 2018 19:07

Bonjour à tous,

Je suis bloqué à l'implémentation de la boucle while dans JavaVisiteurEvaluation.
En effet lorsque je compile, j'ai une très belle "stackOverFlow".
Çà fait deux jours que je bloque dessus, j'ai l'impression de bien suivre l'inférence lié à la boucle while.

<M>,Bexp -visite-> faux
________________________________
<M>,tantque(Bexp) faire I1-visite-> <M>


<M>,Bexp -visite-> vrai
<M>,I1';' tantque(Bexp)faire I1-visite-> <M1>
_____________________________________
<M>,tantque(Bexp)faire I1-visite-> <M1>

Je pense que c'est parce que cela doit créer une boucle infini
Ci-joint ma boucle while:
if(tq.cond().accepter(vb) == true){
return new Sequence(tq.i1(), new TantQue(tq.cond(),tq.i1())).accepter(this);
}
else{
return new TantQue(tq.cond(),tq.i1()).accepter(this);
}
}
Pouvez-vous me dire ce qui cloche dans mon code car je suis dans le flou total?

Je vous remercie par avance.

Douin
Messages : 366
Inscription : 18 mars 2009 15:46

Re: TP6 Q3 boucle while

Message par Douin » 21 nov. 2018 19:47

Bonsoir,

Si le résultat de l'évaluation de la condition est fausse, rien ne se passe, le contexte doit être le même

Code : Tout sélectionner

int x = 10;
while(x<5){....}
la mémoire avant == la mémoire après

Bonne fin de boucle TantQue

Timonnier
Messages : 9
Inscription : 21 oct. 2018 0:45

Re: TP6 Q3 boucle while

Message par Timonnier » 21 nov. 2018 20:40

Merci pour votre réponse!

Effectivement, si j'ai bien compris quand c'est faux on renvoie seulement le contexte précédent.

Malheureusement mon erreur est toujours là!
Je pense que je n'arrive pas à quitter la condition vrai pour une raison qui m'échappe.

RENAUD
Messages : 72
Inscription : 21 sept. 2018 19:34

Re: TP6 Q3 boucle while

Message par RENAUD » 23 nov. 2018 13:46

Essaye avec :
if(tq.cond() == true) //NON "sauvegardé" dans la map "contexte"
plutôt que :
if(tq.cond().accepter(vb) == true) //EST "sauvegardé" dans la map "contexte"
sinon ce sera toujours vrai (/faux) si c'est vrai (/faux) ! ;)

Amokrane
Messages : 18
Inscription : 08 oct. 2018 22:19

Re: TP6 Q3 boucle while

Message par Amokrane » 23 nov. 2018 18:43

Bonjour,

la tu demandes à la boucle de se ré-exécuter même si la condition est fausse, ce qui crée une boucle infinie.
Si le résultat de l'évaluation de la condition est fausse, rien ne se passe, le contexte doit être le même
pour la règle d'inférence, il faut utiliser les classes de la question 3...

Timonnier
Messages : 9
Inscription : 21 oct. 2018 0:45

Re: TP6 Q3 boucle while

Message par Timonnier » 23 nov. 2018 18:52

Merci à tous pour vos réponses !
J'ai réussi à cibler mon erreur grâce à vous =)
Bonne soirée

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité