在Codecademy的这个JavaScript lesson中,需要编写一个do / while循环,我写了这个,然后传递
var getToDaChoppa = function(b){
var a = b;
do{
console.log("Dunno!");
} while (a < b);
};
getToDaChoppa(25);
但仔细观察我的代码时,我认为我可能完全错了,因为a
没有定义的值?
或者因为b
的变量在函数内部是局部的,所以它不会影响传递值为25的b
参数吗?
非常感谢提前。
答案 0 :(得分:4)
它只进行一次迭代,因为当do while
loop
开始时,条件不满足,因为a
和b
是等于的。所以
var getToDaChoppa = function(b){
var a = b;
do{
console.log("Dunno!");
} while (a < b); //25 < 25, exit
};
getToDaChoppa(25);
如果你想试试do
while
循环尝试使用像
var getToDaChoppa = function(b){
var a = 10; //or whatever minor than b
do{
console.log("Dunno!");
a++; //when it reaches 25 or whatever value you set it breaks the loop
} while (a < b);
};
这只是一个让你弄明白do while
如何运作
答案 1 :(得分:3)
代码很好,逻辑错了。您正在为a
分配b
的值,因此它们将始终相等。
答案 2 :(得分:1)
您要将b
的值分配给a
,并附上语句var a = b;
由于您使用do while循环,循环将运行一次。
代码没有错,它旨在说明在循环的第一次迭代之后评估条件。
答案 3 :(得分:0)
这个JavaScript代码错了吗?
取决于您想要解决的问题。
对我来说这看起来很无用,因为循环体总是会被执行一次。
while (a < b);
将始终返回false
,因为var a = b;
并且a
未在循环中修改。
答案 4 :(得分:0)
我认为你所追求的是:
var getToDaChoppa = function(b){
var a = 0;
do{
console.log("Dunno!");
a++;
} while (a < b);
};
如其他海报所述,如果a = b
循环只运行一次。这个版本应该运行预期的次数(如果真的是预期的那样)。
答案 5 :(得分:0)
由于问题是“你的循环应该将你选择的字符串打印到编辑器一次”,我认为这是正确的。您的代码将打印字符串“Dunno!”恰好一次。
然而,a
和b
变量以及do..while
循环可能根本不存在,它们只会增加代码的不必要的复杂性,可以简化为一行( console.log()
来电。{/ p>