var i = 99;
while (true)
{
function lines(him)
{
return i + " " + "lines of code in the file " + i + " " + him + i-1 + "lines of code" + "!";
}
console.log(lines("John strikes one out, clears it all out ;"));
i -= 1;
if (i == 0)
{
break;
}
}3 Réponses :
D'abord, je vous recommande d'utiliser la structure d'itération correcte. Comment décider lequel est le bon pour vous:
foreach code> itérateur, mais je préfère pour code> boucle à la place. LI>
- Si vous devez itérer jusqu'à ce qu'une condition soit remplie,
tandis que code> est la structure correcte pour cela. LI>
- et enfin, si vous devez faire une chose, puis itérer, alors
faire code> la structure est ce dont vous avez besoin. LI>
ul> Dans ce cas, vous savez déjà combien d'itérations vous allez avoir, alors j'irais avec une boucle pour la boucle: p> xxx pré> aussi Gardez à l'esprit que dans votre exemple, vous passez la ligne de déclaration de fonction 99 fois, vous devez éviter cela déclarant la fonction en dehors de la structure de boucle. P>
Une dernière chose, vous devriez toujours essayer de garder votre code comme Lisible que possible, dans votre code actuel, est si difficile de lire ce que vous essayez d'accomplir. p> p>
var i = 99;
function lines(him)
{
return i + " lines of code in the file " + i + " " + him + --i + " lines of code!";
}
while (true)
{
console.log(lines("John strikes one out, clears it all out; "));
if (!i)
{
break;
}
} Le problème est que vous construisez une chaîne, mais essayez ensuite de soustraire un de la chaîne. Soustraction (contrairement à l'ajout) doit aboutir à un nombre mais Un moyen de corriger votre structure consiste à mettre mais une syntaxe plus agréable consiste à utiliser des backtscks pour le formater de manière plus lisible. Essayez ceci: p> "string" -1 code> n'est pas un numéro (NAN). i-1 Code> entre parenthèses, il est donc évalué séparément comme ceci: p> let i = 99
let x = "hello"
console.log("i-1", i - 1) // Works since i is a number
console.log("x-1", x - 1) // NaN subtracting from string
console.log("x+i-1", x + i - 1) // Still NaN since "x+i" is a string
console.log("x+(i-1)", x + (i-1)) // Works since (i-1) is added to the string
Je pense que vous devriez mettre "lui + i-1" entre parenthèses.
+ lui + i-1 + code> ->+ lui + (I-1) + code>@Vlaz peut-être encore mieux. Je ne comprends pas ce que le code est censé faire.
isnan ("string" - 1) === true code> tout jusqu'à ce que- code> est contraint à une chaîne et concaténée.@FlaTassembler, il est supposé imprimer la chaîne
lui code> puis le suivez avec le numéroi-1 code>, par exemple, pouri = 9 code> il doit imprimer < Code> 8 code>. Mais puisqu'il n'y a pas de parenthèses nulle part, l'expression totale i> est évaluée sous forme de lignes de codei + "" + "dans le fichier" + i + "" + lui + i code > (qui produit une chaîne) -> moins1 code> (qui produitnan code>: c'est un numéro soustrait à partir d'une chaîne) -> concaténate"lignes de code" + "!" code>Est-ce que ma fonction est couru une fois ou 99 fois
@Jackie 99 fois. Il s'agit simplement de toujours produire le même message.