J'essaye de faire ce devoir pour mon introduction à la classe de programmation mais cela ne fonctionnera pas correctement. Ce qui est supposé se produire, c'est que tant que currTime est inférieur à 50, soustrayez 5 et affichez le montant restant.
function display(){
var currTime = 50;
while(currTime < 50){
currTime -= 5;
document.write("Time remaining: " + currTime + "</br>");
}
if(currTime = 25){
alert("Warning Less than ½ way to launch, time left " + currTime)
} else if(currTime == 0){
alert("Blast Off!!! <img src='RocketLaunch.gif' />");
}
}
display();
5 Réponses :
Modifiez la condition dans la boucle while. Ne renvoyez pas le document.write et créez l'affichage de la fonction. Déplacez les instructions if dans la boucle
var currTime = 50;
function display() {
while (currTime <= 50 && currTime >= 5) {
currTime -= 5;
document.write("Time remaining: " + currTime + "</br>");
if (currTime == 25)
console.log("Warning Less than ½ way to launch, time left " + currTime)
else if (currTime == 0)
console.log("Blast Off!!! <img src='RocketLaunch.gif' />");
}
}
display();
Au lieu de currTime <50 , essayez currTime <= 50 car 50 <50 est False
Ensuite, l'OP aura une boucle infinie.
Je suppose que c'est ce que vous voulez qu'il fasse, il y a eu quelques problèmes, comme vous pouvez le voir dans les commentaires.
function display(){
var currTime = 50;
// This should probably run as long as `currTime` is greater than `0`.
while(currTime > 0) {
currTime -= 5;
console.log("Time remaining: " + currTime + "</br>");
// Move this `if` inside the while.
if(currTime == 25){ // replace `=` with `==` for an equality check
console.log("Warning Less than ½ way to launch, time left " + currTime)
} else if(currTime == 0){
console.log("Blast Off!!! <img src='RocketLaunch.gif' />");
}
}
}
display();
J'ai remplacé les appels document.write et alert par console.log car c'est plus convivial lors du débogage ...
Modifiez simplement votre première instruction while car elle entraîne une fausse valeur
while (currTime <50) le fait inverser while (currTime> 50) et il commencera à fonctionner.
Si
currTimevaut 50,currTime <50vautfalse, donc la bouclewhilene démarrera même jamais.@NickParsons Ce serait le cas, sauf que
whilen'est jamais exécuté:50n'est jamais inférieur à cinquante. (Et si c'était le cas, ce serait une attente très longue pour qu'il cesse d'être inférieur à cinquante, car vous le diminuez dans la boucle.)De plus, si un nombre est inférieur à un nombre et que vous continuez à soustraire, il restera inférieur audit nombre
oh ouais, j'essayais juste et j'ai oublié de le supprimer avant de le publier. attendez
currTimecommence à50et50 <50estfalseIl n'entrera pas dans la boucle car l'heure actuelle n'est pas inférieure à 50. Elle est égale à 50.
1, In Your while 50 est égal à 50 et non inférieur. 2,
currTime = 25=> Vous allez rendre la variable égale à 25, ce n'est pas une comparaison.