2014-11-06 138 views
-1

这是我迄今为止的编辑..但如果我像这样运行,它会给我一个错误,因为它永远不会结束。Javascript输入百分比

我认为我添加了大部分你建议的注释,但它仍然没有出现。

更正,我得到提示出现,但在我进入一个价格和一个天数之后,没有任何反应。

<html> 
<script type="text/javascript"> 
function show_prompt() { 
    var original = prompt("Original Price","Enter Number Here"); 
    var day = prompt("Day of the Sale","1 - 4"); 
     do{ 
      if (day == "1"){ 
      newprice1 = (original * 0.1) 
      document.write('Total : '+newprice1); 
      } 
      else if (day == "2"){ 
      newprice2 = (newprice1 * 0.1) 
      document.write('Total : '+newprice2); 
      } 
      else if (day == "3"){ 
      newprice3 = (newprice2 * 0.1) 
      document.write('Total : '+newprice3); 
      } 
      else if (day == "4"){ 
      newprice4 = (newprice3 * 0.1) 
      document.write('Total : '+newprice4); 
      } 

     } 
      while (day <= "4"){ 
    } 
} 
show_prompt(); 
document.write('Original Price : '+original); 
document.write('<br>Day of Sale : '+day); 
</script> 
+1

与@一起布伦南的回答,'如果(天= 1)'将指派1至一天,而不是测试为平等 – mattr 2014-11-06 21:46:09

+0

是我,还是不应该比较运算符是'==':'if(day == 1){...}'。 – 2014-11-06 21:46:40

+1

它永远不会结束,因为'day'永远不会改变(在'do {} while'循环内)。 – ssube 2014-11-06 22:11:06

回答

0

您关闭了do后面的括号。

正确的语法是做{...}而(...)

0

您的比较将始终返回false,因为来自用户的输入将是一个字符串,您比较了一些。无论是解析输入作为一个int,或与之比较的字符串:

if (parseInt(day,10) == 1) 

if (day == "1") 
+0

这些都不是比较,他们都是任务。 – ssube 2014-11-06 22:10:20

+0

哎呀,我没有注意就复制粘贴 – Brennan 2014-11-06 22:23:32