Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我不知道如何修复这个if语句_Javascript - Fatal编程技术网

Javascript 我不知道如何修复这个if语句

Javascript 我不知道如何修复这个if语句,javascript,Javascript,我有一个代码,假设用户输入的每一个数字的输出都是“-”,所以如果用户输入2,输出应该是“-”。但是,当用户输入字符串或数字0时,输出应仅为“-” 这实际上只是一种简单的方法,正如评论所说,isNaN是您需要验证您是否确实得到了一个数字 var count = 1; var temp = ""; var end = window.prompt('enter the length'); var b = parseInt(end); while (true) { temp += "-";

我有一个代码,假设用户输入的每一个数字的输出都是“-”,所以如果用户输入2,输出应该是“-”。但是,当用户输入字符串或数字0时,输出应仅为“-”


这实际上只是一种简单的方法,正如评论所说,
isNaN
是您需要验证您是否确实得到了一个数字

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

解释你遇到的问题。如果用户输入一百万,它是输出一百万还是仅仅七个?它是打印一百万个?那么我猜isNaN是正确的答案,下面有一个答案似乎是正确的?是的,答案是检查值是否是数字,即isNaN,下面已经给出了答案。@java-您是从JSFIDLE复制代码的吗?如果是这样的话,请注意结尾的“流氓”角色。
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;
    }
}​
var length = parseInt(window.prompt('enter the length'), 10);
alert(new Array(isNaN(length) ? 2 : length  + 1).join('-'));