Compteur dans une fonction...

tmatt06 -  
adns Messages postés 1152 Statut Membre -
Bonjour,

J'essaye d'écrire un javascript qui permet d'afficher un message Bravo/Perdu selon la réponse à une question.

J'effectue cela en faisant appel, dans le body de ma page html, à une fonction afficher(reponse) qui elle se trouve avant le body bien sûr.

Cela marchait bien, jusqu'à ce que je tente de rajouter un compteur qui félicite spécialement après 10 bonnes réponses d'affilée.
J'instancie le compteur hors de la fonction, et je l'incrémente à l'intérieur (car j'ai vu qu'en javascript, meme a l'intérieur d'une fonction, une variable garde une valeur "globale").

Seulement voila, avec cette fonction modifiée, maintenant à chaque réponse juste, on a l'affichage "Bravo, 10 d'affilée".

Je suis grand débutant en javascript, peut-être la réponse est évidente.

Merci d'avance...
Matthieu

counter=0;

// Fonction qui gère l affichage

function afficher(reponse)
{
if (reponse==C)
{
counter++;
if (counter=10){
document.lire.nombre.value="Bravo,10 a la suite!";
}
else{
document.lire.nombre.value="Bravo !";
}
}
else
{
//counter=0 ;
document.lire.nombre.value="Perdu !";
};
};
A voir également:

1 réponse

adns Messages postés 1152 Statut Membre 153
 
Bonjour,

le problème vient de cette ligne
if (counter=10){ 


Une affectation renvoi toujours vrai donc la condition est vérifiée.

Cette ligne conviendrait mieux car une comparaison se fait avec 2 signes égales "=="
if (counter==10){ 


Adns
1
tmatt06
 
Merci beaucoup pour la réponse.

Cette fois, effectivement, je recois le message "Bravo".

Par contre, je n'obtiens jamais le message "Bravo, 10 à la suite", meme apres plus de 10 bonnes réponses.

Savez-vous d'ou vient le probleme?
0
adns Messages postés 1152 Statut Membre 153
 
La réponse choisi est-elle bien toujours C ?

Tu peux essayé de faire afficher ton compteur à chaque réponse pour voir son comportement.

Adns
0