while循环与>无法正常工作代币

时间:2012-07-07 13:51:09

标签: javascript

这似乎不起作用我不知道如何让这个循环工作正常任何帮助将不胜感激。

function getProductCode() {
   productCode = parseInt(prompt("Enter Product Code: "));
   while (productCode < 1 || > 9999) 
   {
      document.writeln("Error! the product Code must be between 1 - 9999");
      parseInt(prompt("Enter Product Code: "));
   }
   return productCode
}

getProductCode()

3 个答案:

答案 0 :(得分:5)

你在左侧错过了一个操作数(productCode):

while (productCode < 1 || productCode > 9999) 
                          ^^^^^^^^^^^

  • parseInt提供基数。未指定时,010变为8(八进制文字)。
  • 不要将变量泄漏到全局范围,使用var来声明局部变量。
  • 反转您的逻辑,或使用isNaN。当提供无效数字(NaN)时,您的循环不应该停止。
  • 最好将邮件从document.writeln移至对话框。
  • 将新值分配给productCode。否则,你不会走远......
  • 重要:可以在浏览器中禁用对话框。不要无限循环多次,但要添加一个阈值。

负责前5个要点的最终代码:

function getProductCode() {
   var productCode = parseInt(prompt("Enter Product Code: "), 10);
   while (!(productCode >= 1 && productCode <= 9999)) {
      productCode = parseInt(prompt("Error! the product Code must be between 1 - 9999\nEnter Product Code: "), 10);
   }
   return productCode;
}

我没有实现门槛,你可以这样做。

答案 1 :(得分:2)

它应该是:

while (productCode < 1 || productCode > 9999)

答案 2 :(得分:0)

(productCode < 1 || > 9999)不是语法上有效的表达式

您可能需要(productCode < 1 || productCode > 9999)