Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.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 如果语句赢了';t运行并否定以前的代码_Javascript - Fatal编程技术网

Javascript 如果语句赢了';t运行并否定以前的代码

Javascript 如果语句赢了';t运行并否定以前的代码,javascript,Javascript,我从来没有使用过这个网站之前,我是新的编程,所以请容忍我。我的作业要求我提示用户输入一个介于1和12之间的数字,再次询问他们是否没有这样做,并根据他们输入的数字更改背景颜色。低于6的变为红色,6为白色,高于6的变为蓝色 出于某种原因,如果我注释掉if/if-else/else块,那么之前的提示会起作用。如果我取消对它的注释,网页上什么也不会发生,我也不知道为什么。有人能告诉我我做错了什么吗 <script> var userNum = window.prompt("

我从来没有使用过这个网站之前,我是新的编程,所以请容忍我。我的作业要求我提示用户输入一个介于1和12之间的数字,再次询问他们是否没有这样做,并根据他们输入的数字更改背景颜色。低于6的变为红色,6为白色,高于6的变为蓝色

出于某种原因,如果我注释掉if/if-else/else块,那么之前的提示会起作用。如果我取消对它的注释,网页上什么也不会发生,我也不知道为什么。有人能告诉我我做错了什么吗

<script>

        var userNum = window.prompt("Please insert a number between 1 and 12...", "1 - 12");

        if((userNum <= 12) && (userNum >= 1))
        {
            document.write
            (
                userNum + " * 1 = " + userNum * 1;
                userNum + " * 2 = " + userNum * 2;
                userNum + " * 3 = " + userNum * 3;
                userNum + " * 4 = " + userNum * 4;
                userNum + " * 5 = " + userNum * 5;
                userNum + " * 6 = " + userNum * 6;
                userNum + " * 7 = " + userNum * 7;
                userNum + " * 8 = " + userNum * 8;
                userNum + " * 9 = " + userNum * 9;
                userNum + " * 10 = " + userNum * 10;
                userNum + " * 11 = " + userNum * 11;
                userNum + " * 12 = " + userNum * 12;
            )

            if(userNum < 6)
            {
                window.bgColor = "red";
            }
            else if(userNum > 6)
            {
                window.bgColor = "blue";
            }
            else
            {
                window.bgColor = "white";
            }
        }
        else if((userNum > 12) || (userNum < 1))
        {
            window.alert("Error: Input value outside requested range");
            window.reload();
        }
        else
        {
            window.alert("Error: Input value not a number");
            window.reload();
        }

</script>

var userNum=window.prompt(“请插入一个介于1和12之间的数字…”,“1-12”);
如果((userNum=1))
{
document.write
(
userNum+“*1=“+userNum*1;
userNum+“*2=“+userNum*2;
userNum+“*3=“+userNum*3;
userNum+“*4=“+userNum*4;
userNum+“*5=“+userNum*5;
userNum+“*6=“+userNum*6;
userNum+“*7=“+userNum*7;
userNum+“*8=“+userNum*8;
userNum+“*9=“+userNum*9;
userNum+“*10=“+userNum*10;
userNum+“*11=“+userNum*11;
userNum+“*12=“+userNum*12;
)
if(userNum<6)
{
window.bgColor=“红色”;
}
否则如果(userNum>6)
{
window.bgColor=“蓝色”;
}
其他的
{
window.bgColor=“白色”;
}
}
else如果((userNum>12)| |(userNum<1))
{
警告(“错误:输入值超出请求范围”);
window.reload();
}
其他的
{
警告(“错误:输入值不是数字”);
window.reload();
}
如果我取消对它的注释,网页上什么也不会发生,我也不知道为什么

使用浏览器内置的调试工具。例如,如果您使用的是Chrome,请阅读它的开发工具。搜索插入浏览器名称的“XYZ开发工具”将查找有关浏览器开发工具的信息

其中一个关键点是控制台,在大多数操作系统上,你可以通过Ctrl+Shift+I或F12,在Mac操作系统上,也可以通过Cmd+Shift+I访问控制台。在控制台中,您会看到第一个
的语法错误
文档中。写
调用,因为你不能有
在这样的表达式的中间。您可能还希望分隔正在输出的行,因此最小更改版本可能是:

var userNum = window.prompt("Please insert a number between 1 and 12...", "1 - 12");

if((userNum <= 12) && (userNum >= 1))
{
    document.write
    (
        userNum + " * 1 = " + userNum * 1 + "<br>" +
        userNum + " * 2 = " + userNum * 2 + "<br>" +
        userNum + " * 3 = " + userNum * 3 + "<br>" +
        userNum + " * 4 = " + userNum * 4 + "<br>" +
        userNum + " * 5 = " + userNum * 5 + "<br>" +
        userNum + " * 6 = " + userNum * 6 + "<br>" +
        userNum + " * 7 = " + userNum * 7 + "<br>" +
        userNum + " * 8 = " + userNum * 8 + "<br>" +
        userNum + " * 9 = " + userNum * 9 + "<br>" +
        userNum + " * 10 = " + userNum * 10 + "<br>" +
        userNum + " * 11 = " + userNum * 11 + "<br>" +
        userNum + " * 12 = " + userNum * 12 + "<br>"
    );

    if(userNum < 6)
    {
        window.bgColor = "red";
    }
    else if(userNum > 6)
    {
        window.bgColor = "blue";
    }
    else
    {
        window.bgColor = "white";
    }
}
else if((userNum > 12) || (userNum < 1))
{
    window.alert("Error: Input value outside requested range");
    window.reload();
}
else
{
    window.alert("Error: Input value not a number");
    window.reload();
}
var userNum=window.prompt(“请插入一个介于1和12之间的数字…”,“1-12”);
如果((userNum=1))
{
document.write
(
userNum+“*1=“+userNum*1+”
“+ userNum+“*2=“+userNum*2+”
“+ userNum+“*3=“+userNum*3+”
“+ userNum+“*4=“+userNum*4+”
“+ userNum+“*5=“+userNum*5+”
“+ userNum+“*6=“+userNum*6+”
“+ userNum+“*7=“+userNum*7+”
“+ userNum+“*8=“+userNum*8+”
“+ userNum+“*9=“+userNum*9+”
“+ userNum+“*10=“+userNum*10+”
“+ userNum+“*11=“+userNum*11+”
“+ userNum+“*12=“+userNum*12+”
“ ); if(userNum<6) { window.bgColor=“红色”; } 否则如果(userNum>6) { window.bgColor=“蓝色”; } 其他的 { window.bgColor=“白色”; } } else如果((userNum>12)| |(userNum<1)) { 警告(“错误:输入值超出请求范围”); window.reload(); } 其他的 { 警告(“错误:输入值不是数字”); window.reload(); }
但是一些其他注意事项:

  • 通常,避免使用
    文档。编写
    。使用domapi(或类似jQuery的包装库)在页面上显示信息更有用
  • 您的第二个
    if
    是多余的,除非您有意允许用户输入非数字,并且依赖于与
    NaN
    的比较始终为false
  • bgColor
    属性早已被弃用,并被CSS取代。所以
    document.body.style.backgroundColor=“这里有颜色”

您是否尝试过检查控制台是否存在错误?一个错误被抛出,你的代码无法执行(这就是为什么“网页上什么都没有发生”),所以当你评论if-else部分时,就不再有错误了。除了逻辑错误,你在
文档中有基本语法错误。write
call.@t.J.Crowder我看到了文档。write problems,但我不认为这和复制品有相同的逻辑错误question@NicholasTower:你说得对,我误读了条件。你为什么不尝试使用JavaScript的
开关
功能呢?这就是全部,谢谢。窗口没有像我想的那样重新加载,但我可能能弄明白。我只使用document.write来完成我现在要上的这门课。我确信教授用它来说明BOM和DOM的属性和结构。然而,你认为你能解释一下为什么我的第二个if语句是多余的吗?