女士们,先生们,
我被困住了。在尝试让我的代码工作时,我一直在思考这个问题(显然已经失败,因为我要求你提供宝贵的帮助)。
我需要提出一个简单的(...对不起,我是新手)代码,提示用户继续使用循环输入名称。如果用户没有输入'q'(没有引号),并且输入的值是非null,那么输入的值应该添加到数组中(在我的例子中,名称)。
如果用户输入'q',循环应该停止,'q'将不会在数组中输入,并且应该打印名称列表(通过我的代码中的第二个函数)。
这是我到目前为止所拥有的...如果我告诉循环运行i< 5 ...它运行5次然后停止,我可以使代码工作。但如果我这样做,那就失败了。 names.length..it导致它说长度为null或不是对象(在第10行)。这是一个问题。而对于我的生活,我无法弄清楚如何添加将运行循环的逻辑,直到用户输入q。
请帮忙!
谢谢。
function getNames(){
var names = new Array();
for(i=0;i<names.length;i++){ /*if i do i=0;i<5;i++, the code works; it doesn't with this*/
names[i] = prompt("Enter an item to add to the Name list (enter \'q\' to quit","");
}
printNames(names);
}
function printNames(names) {
for(x=0; x < names.length;x++){
document.write(names[x] + '<br />');
}
}
getNames();
printNames();
答案 0 :(得分:2)
我相信你班级/书中的某个地方会谈到while loops。因此,如果您希望它们在没有限制的情况下继续输入,您希望使用while循环。
while (myCondition===true) {
//do something
}
现在看看你的for循环并弄清楚它失败的原因。
for(i=0;i<names.length;i++)
看看它在做什么:
0 < 0
?
答案 1 :(得分:0)
从问题1开始:
您的names数组以length属性值0开头,因此您的第一个for循环不会运行,因为0不小于0.
导致问题2:
再次,因为没有任何内容输入到你的名字数组中,你的第二个for循环再没有做任何事情并且不执行document.write,因为你的数组的length属性仍然是0。