Ce pourrait être une question idiote; cependant, mon code ne fonctionne pas. J'essayais de répertorier les nombres pairs de un à dix et chacun multiplié par 2 . Mais je n'obtiens pas ce que je veux. Veuillez m'aider ce que j'ai manqué dans le code.

var num; 
var list = ""; 
for(num = 0; num<=10; num++){ 
  num % 2 == 0;
  num *=2; 
  list += num + "<br>"; 
  document.getElementById("demo").innerHTML = list; 
} 
<p id="demo"></p>
0
Mike 7 mars 2016 à 19:47

4 réponses

Meilleure réponse

Vous modifiez la variable de boucle, vous devez utiliser une variable différente et vous devez ajouter l'instruction if:

var num, i;
var list = ""; 
for(i = 0; i<=10; i++){ 
  if (i % 2 == 0) {
    num = i*2; 
    list += num + "<br>"; 
    document.getElementById("demo").innerHTML = list; 
  }
} 
<p id="demo"></p>

document.getElementById("demo").innerHTML peut également être en dehors de la boucle.

0
Ullas 7 mars 2016 à 17:45

Comme cela devrait fonctionner très bien:

<!doctype html>
<html>
<head>
</head>

<body>
  <p id="demo"></p>
  <script>
  var num; 
  var list = ""; 
  for(num = 0; num<=10; num++){ 
  if(num % 2 == 0) list += (num * 2) + "<br>"; 
  document.getElementById("demo").innerHTML = list; 
  } 
  </script>
</body>

</html>
0
Giovanni Perillo 7 mars 2016 à 16:53

Pas besoin de modulo; utilisez simplement une étape dans votre boucle:

for (var arr = [], i = 0, l = 10; i <= l; i+=2) {
  arr.push(i * 2);
}

arr.join('<br/>'); // 0<br/>4<br/>8<br/>12<br/>16<br/>20
0
Andy 7 mars 2016 à 17:20

Vous écrasez votre variable num dans la boucle

Remplacer

num *=2; 
list += num + "<br>"; 

Avec

list += (num*2) + "<br>";

Par exemple, si vous commenciez par num = 2, vous le multipliez ensuite par 2 num *=2. Ainsi, la prochaine fois que vous entrerez dans la boucle, num sera 4. Ce qui signifie que vous avez sauté 3!

0
Beep 7 mars 2016 à 16:53