2012-12-08 109 views
0
var count=1; 
var temp=""; 
var end= window.prompt('enter the length'); 
var b = parseInt(end); 

while(true){ 
    temp+="-"; 
    count++; 
    if(count>b&&end!=null){ 
console.log("enter:" +end+ "= " + temp); 
break; 
} 
} 

我有这个代码是假设给我的输出“ - ”每个号码的用户输入,所以如果我的用户输入2输出应该是“ - ”。但是当用户输入字符串或数字零时,输出应该只是“ - ”。我想不通我怎么能解决这个if语句

+0

解释你遇到的问题。如果用户输入100万,那么它是否会输出一百万个'-'或者只有七个? – adeneo

+0

这是假设打印100万 - – java

+2

然后我猜isNaN是正确的答案,下面有一个答案似乎是正确的? – adeneo

回答

0
var count = 1; 
var temp = ""; 
var end = window.prompt('enter the length'); 
var b = parseInt(end); 

while (true) { 
    temp += "-"; 
    count++; 

    // if the user entered a valid integer that is not 0 
    if (!isNaN(b) && b !== 0) { 
     if (count > b && end != null) { 
      console.log("enter:" + end + "= " + temp); 
      break; 
     } 

    // else the user entered 0 or some other input that isn't an integer 
    } else { 
     console.log("enter:" + end + "= -"); 
     break; 
    } 
}​ 

FIDDLE

FIDDLE WITH ALERTS

1

这真的只是在做你想要什么的更简单的方法,如评论说,isNaN是你需要确认你实际上得到了一些什么。

var length = parseInt(window.prompt('enter the length'), 10); 
alert(new Array(isNaN(length) ? 2 : length + 1).join('-'));