0

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

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()
4

3 回答 3

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

我没有实施门槛,这取决于你。

于 2012-07-07T13:53:55.663 回答
2

它应该是:

while (productCode < 1 || productCode > 9999)
于 2012-07-07T13:54:59.360 回答
0

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

你可能想要(productCode < 1 || productCode > 9999)

于 2012-07-07T13:55:59.297 回答