Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.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提示和变量_Javascript_Variables - Fatal编程技术网

Javascript提示和变量

Javascript提示和变量,javascript,variables,Javascript,Variables,我学会了C我想至少是C。。。在过去,我们的UNI分配要求我们使用javascript在HTML文档中生成代码,该文档使用输入值并确定它是什么类型的土壤 我的代码不起作用。这与本节有关 var soilsize = 20; var valid = false; while (valid = false){ //do while valid is false

我学会了C我想至少是C。。。在过去,我们的UNI分配要求我们使用javascript在HTML文档中生成代码,该文档使用输入值并确定它是什么类型的土壤

我的代码不起作用。这与本节有关

    var soilsize = 20;
    var valid = false;

    while (valid = false){                                                     //do while valid is false
        var soilsize = prompt("Please enter soil size in millimetres");
        if (soilsize = null) || (isNaN(soilsize)) || (soilsize <0) {        // if nothing was entered, if the entered value is not a number, or if size is < 0
            prompt("This is not a positive number.");
            var valid = false;
        }
        else{
            var valid = true;
        }
    }
我还需要预定义变量吗?
感谢您的帮助。我可以上传完整的代码,如果需要的话。谢谢伙计们。

你们已经宣布soilsize有效。您不应该在整个循环中使用var重新定义它们

正确的代码应该是:

var valid = false;

while (!valid) {                                                     //do while valid is false
    var soilsize = prompt("Please enter soil size in millimetres");
    if (soilsize == null || (isNaN(soilsize) || (soilsize <0))) {        // if nothing was entered, if the entered value is not a number, or if size is < 0
        alert("This is not a positive number.");
        valid = false;
    } else {
        valid = true;
    }
}

但请记住,这样做,您将永远无法在没有有效值的情况下离开,也不会显示警报,因为您将重新请求soilsize值。

问题在于while valid=false和if soilsize=null。在JavaScript中,一个等号赋值-需要两个进行比较,可以使用三个进行严格比较。while块也存在同样的问题。它从不进入循环。您可以将其更改为whilevalid,但可以使用true对其进行初始化,并使用:valid=true反转if块内的值,不要再次设置var valid。其他事项:您的if块格式不正确,请更改为:if soilsize==null | | | isNaNsoilsize | | | soilsize更不用说语法错误了…请阅读上的文档。有大量的语法和语义错误,但重新声明没有什么区别,因为没有函数为var变量提供额外的嵌套范围。