11540 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
j'ai commencer une formation de javascript, mais je galère un peu. Avec cet exercice, pourtant facile,
je tourne en rond,

je dois calculer IMC (poids/(taille*taille), avec le poids et la taille (là ça marche), mais dès que j'essaie avec le résultat de mettre des conditions (entre 16 et 18, entre 18 et 25, entre 25 et 30) avec un message qui l'accompagne, là ça coince.

merci pour l'aide,
<h1>calcule IMC</h1><br/>
		
		Mettez le poids:<input type="text" id="poids" /><br/><br/>
		Mettez la taille:<input type="text" id="taille" /><br/><br/>
		
		<button id="calculer">calculer</button>		
		
		<h2 id="sortie">réponse</h2>


document.getElementById("calculer").onclick = calculImc;		
		
		function calculImc () {
		
		var poids = document.getElementById("poids").value;
		var taille = document.getElementById("taille").value;
		
		var maigre = "entre 16 et 18 vous êtes maigre";
		var normal = "vous êtes normal";
		var surpoids = "vous êtes surpoids";
		
		
		var imc = poids / (taille*taille);
		
	
		console.log(imc);		
				
				if (imc > 16 && imc < 18) {
					document.getElementById("sortie").innerHTML = maigre;	
				} 
				
				else if (imc > 18 && imc < 25) {
					
					document.getElementById("sortie").innerHTML = normal;			
				} 
				
				else if (imc > 25 && imc < 30) {
					document.getElementById("sortie").innerHTML = surpoids;			
				} 
				
		}
Pour commencer ton ennoncé : "entre 16 et 18, entre 18 et 25, entre 25 et 30" est faux. Une même valeur ne peut pas se situer dans 2 intervalles à la fois. Imagine que tu ais un IMC de 18 comment savoir dans quel intervalle il se situe, le premier ou le deuxième ?

Un autre point ou tu te trompes c'est dans la vérification de tes valeurs. Si tu dis imc < 18, ça correspond à 17 et ensuite tu testes imc > 18 ce qui correspond à 19. Donc dans ton code si on tombe sur un imc de 18, il n'entre dans aucun de tes invervalles.

Enfin la dernière erreur, celle qui fait que ton code ne fait rien c'est que tu as oublié de mettre des quotes autour de tes chaines de texte "maigre", "normal", "surpoids". Tu dois avoir une erreur qui s'affiche dans ta console JavaScript concernant ce point (pour ouvrir la console regarde dans les outils de developpement de ton navigateur).

Le dernier point, tu n'as pas besoin de tester la valeur minimale (> 16) pour ton premier intervalle, ou la valeur maximale (< 30) pour ton dernier intervalle.
Modifié par lamext (02 May 2015 - 10:45)
Ok merci,
je vais déjà corriger cela,

en fait j'ai pas mis les quotes, cela rappelle les variables d'avant,

mais là ça marche.

en fait je mettais un poids de 35 kilos, mais comme j'avais un imc entre 16 et 18, j'étais en dessous, j'avais 9,

Smiley bawling Smiley bawling Smiley bawling

merci pour tout,
pym_74 a écrit :

en fait j'ai pas mis les quotes, cela rappelle les variables d'avant,


Ah oui, j'étais pas bien reveillé. Smiley cligne