For loop 对于循环赢得';结束。Don';我不知道为什么
我正在为一个项目编写一个for循环,它提示用户输入一个数字,并不断地进行提示,不断地将数字相加。当引入字符串时,循环应该停止。我已经用while循环完成了,但是项目声明我们也必须用for循环完成。问题是,即使在“a=false”时,提示仍会继续运行。有人能解释一下javascript的思维过程吗?我想了解为什么即使不满足条件,它仍会在循环中运行。多谢各位For loop 对于循环赢得';结束。Don';我不知道为什么,for-loop,infinite-loop,For Loop,Infinite Loop,我正在为一个项目编写一个for循环,它提示用户输入一个数字,并不断地进行提示,不断地将数字相加。当引入字符串时,循环应该停止。我已经用while循环完成了,但是项目声明我们也必须用for循环完成。问题是,即使在“a=false”时,提示仍会继续运行。有人能解释一下javascript的思维过程吗?我想了解为什么即使不满足条件,它仍会在循环中运行。多谢各位 var addSequence2 = function() { var total = 0; var a;
var addSequence2 = function() {
var total = 0;
var a;
for (; a = true; ) {
var input = prompt("Your current score is " +total+ "\n" + "Next number...");
if (!isNaN(input)) {
a = true;
total = +total + +input;
}
else if (isNaN(input)) {
a = false;
document.write("Your total is " + total);
}
}
};
尝试使用等于运算符,即更改 对于(;a=true;){ 到
对于(;a==true;){尝试使用等于运算符,即change 对于(;a=true;){ 到
for(;a==true;){我怀疑您希望您的for看起来像这样:
for(;a==true;)
as a=true是一个赋值,而不是一个比较。我怀疑您希望您的for看起来像这样:
for(;a==true;)
因为a=true是赋值,而不是比较。
a==true
。双等号比较两者。单等号将值true
赋值给a,因此总是返回true。a==true
。双等号比较两者。单等号将值true
赋值给a,因此始终返回正确。对于(;a=true;)对于(;a=true;)在a=true
和a==true
之间存在差异
for循环基本上是问“我可以将'a'设置为true吗?”,答案是肯定的,循环继续
将条件更改为a==true
(从而询问“a”的值是否为true?”)
为了详细说明,在大多数编程语言中,我们区分赋值(“使‘x’为4”)和相等测试(“是‘x’4?”)。按照惯例(至少在从C派生语法的语言中),我们使用“=”来赋值/设置值,使用“==”来测试 如果我正确理解规范(不保证),这里发生的情况是,条件浓缩如下:
a=true
和a==true
之间存在差异
for循环基本上是问“我可以将'a'设置为true吗?”,答案是肯定的,循环继续
将条件更改为a==true
(从而询问“a”的值是否为true?”)
为了详细说明,在大多数编程语言中,我们区分赋值(“使‘x’为4”)和相等测试(“是‘x’4?”)。按照惯例(至少在从C派生语法的语言中),我们使用“=”来赋值/设置值,使用“==”来测试 如果我正确理解规范(不保证),这里发生的情况是,条件浓缩如下:
您应该使用a==true而不是a=true……=是赋值运算符您应该使用a==true而不是a=true……=是赋值运算符对于(;a=true;),您正在将值赋值给变量“a”在JavaScript中,它应该a===true对于(;a=true;),您正在将值分配给变量“a”,它将始终保持为true,并将在无限循环中结束。在JavaScript中,它应该a===true这是您的固定代码:
var addSequence2 = function() {
var total = 0;
var a = true;
for(;Boolean(a);) {
var input = prompt("Your current score is " +total+ "\n" + "Next number...");
if (!isNaN(input)) {
total = total + input;
}
else{
a = false;
document.write("Your total is " + total);
}
}
};
这是您的固定代码:
var addSequence2 = function() {
var total = 0;
var a = true;
for(;Boolean(a);) {
var input = prompt("Your current score is " +total+ "\n" + "Next number...");
if (!isNaN(input)) {
total = total + input;
}
else{
a = false;
document.write("Your total is " + total);
}
}
};
谢谢@KindeyChris和其他回复的人。我现在明白了。我感谢你们所有人花时间帮助我:)谢谢@KindeyChris和其他回复的人。我现在明白了。我感谢你们所有人花时间帮助我:)是的,一段时间的循环似乎更适合这个任务。但是任务要求我们使用一个厕所p来练习使用它们,显然,我需要练习!呵呵。谢谢你的帮助:)是的,一个while循环似乎更适合这个任务。但是作业要求我们使用for循环来练习使用它们,显然,我需要练习!呵呵。谢谢你的帮助:)