【问题标题】:While loops for error checking in JavaScript用于 JavaScript 中错误检查的 while 循环
【发布时间】:2014-01-19 00:24:09
【问题描述】:

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

}

【问题讨论】:

    标签: javascript validation loops while-loop


    【解决方案1】:

    让我们逐步了解您的退出条件:

    • colour != 'red 好的,如果不是红色,继续循环。如果它红色怎么办?
    • || colour != 'blue'呵呵。但我们到达这里的唯一时间是它是否是红色的。如果它是红色的,它肯定不是蓝色的,所以循环永远不会结束。

    尝试&& 而不是||

    【讨论】:

    • 好吧,这似乎是答案!
    【解决方案2】:

    你定义了两次var color,有什么理由吗?无论哪种方式,这段时间都可以完成这项工作::

        while (color) {
            if (color == "red") {
                console.log("red");
                break;
            }else if (color=="blue") {
                console.log("blue");
                break;
            }
            break;
        }
    

    如果你有color != 'red' 并且如果这个颜色永远不会通过,那么循环将是无限的,所以通过这种方式我们打破了 while 任何一种方式,因为你只期望一些预定义的值

    【讨论】:

      【解决方案3】:

      您定义了两个名为 color 的变量:

      改变

      var color = prompt("Please choose from either: red, green, or blue?");
      

      color = prompt("Please choose from either: red, green, or blue?");
      

      所以它使用颜色变量“外部”。 || 也应该是 &&。

      要明确一点:

      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;
      }
      

      【讨论】:

        猜你喜欢
        • 2015-10-04
        • 1970-01-01
        • 2016-08-09
        • 1970-01-01
        • 1970-01-01
        • 2020-08-06
        • 1970-01-01
        • 2017-07-12
        相关资源
        最近更新 更多