-1
votes

Déterminez un nombre impair / pair et utilisez-le pendant que la boucle d'ajout du compteur en JavaScript

Je ne sais pas pourquoi il s'arrête en boucle après avoir satisfait à la condition de la condition (par exemple, la somme du nombre d'où il précède). Je crois qu'il y a quelque chose qui ne va pas avec le code. Où est-ce? XXX


7 commentaires

parseint (1) ??


Qu'attendez-vous que le code devrait faire?


Qu'essayez-vous d'accomplir avec la boucle et l'algorithme de la boucle?


Les seuls résultats de ce code peuvent être Aucun ou 3


@Scottmarcus Comment avez-vous géré cela? Je l'exécute dans la console et j'ai eu 3.


@Scottmarcus Il ne peut jamais être 11.


@Scottmarcus Si votre résultat est de 11 pour la raison avec la raison, vous feriez mieux d'ouvrir un problème avec votre fabricant de la CPU dès que possible ...


3 Réponses :


0
votes

La boucle se passe, mais vous ne le voyez tout simplement pas parce que vous n'imprimez rien quand il boucle.

Votre code devrait être comme ça à la place: P>

var init = parseInt(prompt('enter an odd or even no.'));
var sec = init%2;

if (sec != 0) {
    var loop = 5;   
    while (loop < 10) {
        var num = 1;
        loop += loop; 
        num += 2
        document.write(num);
    }

} else {
    document.write('None');
} 


0 commentaires

0
votes

Vous devez initialiser num code> avec 1 code> en dehors du pendant l'instruction code>, car vous attribuez cette valeur pour chaque boucle.

Le Je suggère de déclarer toute la variable d'avantage en haut du code. Vous pouvez également attribuer ici des valeurs connues ici. P>

p>

var init = parseInt(prompt('enter an odd or even no.'), 10),
    sec = init % 2,
    loop = 5,
    num = 1;

if (sec != 0) {
    while (loop < 10) {
        loop += loop;
        num += 2;
    }
    document.write(num);
} else {
    document.write('None');
}


5 commentaires

Ce n'est pas le problème. S'il vous plaît voir ma réponse.


@ThatalesMinussi c'est A problème.


Ça dépend. L'OP pense que ce n'est pas en boucle. Mais il est. Si sa logique en boucle est cassée ou non, c'est une autre histoire.


@Thalesminussi Votre réponse est une hypothèse, Nina est une solution sémantique réelle. Que ce soit ou non ce que OP voulait atteindre est une question distincte.


"Je ne sais pas pourquoi il cesse de boucler après avoir satisfaisant la condition". Pour moi, cela ne ressemble pas à une hypothèse. Pour moi, l'OP indique clairement que cela cesse de boucler mais ne signifie pas pourquoi.



1
votes

Est-ce ce que vous essayez de faire? Variables déclarées avec var code> ne pas avoir de portée de bloc, il peut donc être plus clair de les déclarer en haut de votre code.

p>

var init = parseInt(prompt('enter an odd or even no.'));
var sec = init % 2;
var loop = 5;
var num = 1;
		
if(sec != 0) {
  while(loop < 10) {
    num+=2; 
    loop++;   
    document.write(num);
  }
}  else { 
  document.write('None');
}


5 commentaires

Oui. Vous avez raison, c'est juste le problème que je rencontre. Mais comment puis-je obtenir la somme des chiffres chaque fois qu'il itre? Dites la somme que je devrais obtenir est censée être 35.


@JPMC Si vous exécutez le code de Scott, il devrait faire ce que vous attendez maintenant, puisque Scott a supprimé le numéro num = parseint (1). Au lieu de cela, il accumule maintenant 2 sur chaque interaction (ce que nous croyons est ce que vous vouliez exprimer)


Oui. Logiquement. Cependant, il n'imprime que le numéro "357911"


C'est parce que vous imprimez tout dans la même ligne. Mais il s'accumule. Regardez soigneusement: 3 - 5 - 7 - 9 - 11


Ouais j'ai l'idée maintenant. boucle 5 <10 sortie 1 + 2 6 <10 sortie 3 + 2 7 <10 sortie 5 + 2 8 <10 sortie 7 + 2 9 <10 OUPUT 9 + 2 Par conséquent, le nombre qu'il accumule résulte de 11 que je l'ai mis à l'extérieur de la Brace où la boucle tandis que la boucle fixe les déclarations.