我试图让它提示用户选择红色,绿色或蓝色。根据他们的回答,程序将显示一条消息。 我正在尝试使用while循环来检查用户是选择了红色,绿色还是蓝色,如果没有,它会再次提示只选择红色,绿色或蓝色。
我的问题是程序似乎陷入了while循环,无论他们回答什么。我不知道我做错了什么。
我知道可能有另一种方法可以做到这一点,但这是一项学校作业,我必须使用while循环。
var color = prompt("What is your favorite color: red, green, or blue?");
color =color.toLowerCase();
color = color.trim();
while(color != 'red' || color != 'blue' || color != 'green'){
var color = prompt("Please choose from either: red, green, or blue?");
}
if (color == 'red'){
document.write('Spicy!');
}else if(color == 'green'){
document.write('Green is such a mellow color.');
}else{
document.write('Wow! Blue is my favorite color too!');
}
答案 0 :(得分:0)
让我们逐步退出退出条件:
colour != 'red
好的,如果它不是红色,请继续循环。如果是红色怎么办?|| colour != 'blue'
嗯。但我们到这里的唯一一次是它是否是红色的。如果它是红色的,它肯定不是蓝色的,所以循环永远不会结束。尝试使用&&
代替||
。
答案 1 :(得分:0)
您定义了两个名为color的变量:
变化
var color = prompt("Please choose from either: red, green, or blue?");
到
color = prompt("Please choose from either: red, green, or blue?");
所以它在while之外使用color var。此外,||应该是&&'s。
要明确:
var color;
do
{
color=prompt("What is your favorite color: red, green, or blue?");
color=color.toLowerCase().trim();
}
while(color!='red' && color!='blue' && color!='green');
switch(color)
{
case 'red':
document.write('Spicy!');
break;
case 'green':
document.write('Green is such a mellow color.');
break;
case 'blue':
document.write('Wow! Blue is my favorite color too!');
break;
}
答案 2 :(得分:0)
你定义var color
两次,有什么理由吗?这两种方式都可以完成这项工作::
while (color) {
if (color == "red") {
console.log("red");
break;
}else if (color=="blue") {
console.log("blue");
break;
}
break;
}
如果你有color != 'red'
并且如果这种颜色永远不会通过,那么循环将是无穷大的,所以这样我们就可以打破任何一种方式,因为你只想要一些预定义的值