while循环用于JavaScript中的错误检查

时间:2014-01-19 00:24:10

标签: javascript validation loops while-loop

我试图让它提示用户选择红色,绿色或蓝色。根据他们的回答,程序将显示一条消息。 我正在尝试使用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!');

}

3 个答案:

答案 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'并且如果这种颜色永远不会通过,那么循环将是无穷大的,所以这样我们就可以打破任何一种方式,因为你只想要一些预定义的值