Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.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 - Fatal编程技术网

Javascript 为什么“如果”起作用而“开关”不起作用?

Javascript 为什么“如果”起作用而“开关”不起作用?,javascript,Javascript,我的第一个方法是开关不工作,但如果方法工作 我尝试了所有改变代码或其他方式的方法,但结果都是一样的 请大家帮帮我。案例不能是表达式,您必须先规范化您的输入 尽管将表达式放在case中是有效的,但在本场景中,一种更为成熟和真实的处理方法是首先规范化输入 您可以确定方向,例如: var num=parseIntpromptput编号,10; 变量方向=数值0将返回true或false。 如果您这样做: // It is simple code var num = prompt("put numb

我的第一个方法是开关不工作,但如果方法工作

我尝试了所有改变代码或其他方式的方法,但结果都是一样的

请大家帮帮我。

案例不能是表达式,您必须先规范化您的输入

尽管将表达式放在case中是有效的,但在本场景中,一种更为成熟和真实的处理方法是首先规范化输入

您可以确定方向,例如:

var num=parseIntpromptput编号,10; 变量方向=数值<0-1 : 1; 开关方向{ 案例1: console.lognum++; 打破 案例1: console.lognum-2; 打破 } 大小写不能是表达式,必须先规范化输入

尽管将表达式放在case中是有效的,但在本场景中,一种更为成熟和真实的处理方法是首先规范化输入

您可以确定方向,例如:

var num=parseIntpromptput编号,10; 变量方向=数值<0-1 : 1; 开关方向{ 案例1: console.lognum++; 打破 案例1: console.lognum-2; 打破 } 因为案例中的语句num>0将返回true或false。 如果您这样做:

// It is simple code

var num = prompt("put number");
// This way is not worked 
switch (num) {
    case num > 0:
        console.log("num++");
        break;
    case num < 0:
        console.log(num-2);
        break;
}
// But this worked
if (num > 0){
    console.log(num++);
} else if (num < 0){
    console.log(num -2);
}
它将起作用。

因为您案例中的语句num>0将返回true或false。 如果您这样做:

// It is simple code

var num = prompt("put number");
// This way is not worked 
switch (num) {
    case num > 0:
        console.log("num++");
        break;
    case num < 0:
        console.log(num-2);
        break;
}
// But this worked
if (num > 0){
    console.log(num++);
} else if (num < 0){
    console.log(num -2);
}

它将起作用。

该开关充当案例切换器,这意味着您无法通过比较来创建案例,只需逐个案例列出案例,并在此案例中执行某些功能。if/else结构适合进行比较,因为if调用中的预期结果始终是布尔值

例如:

switch (true) {
    case num > 0:
        console.log("num++");
        break;
    case num < 0:
        console.log(num-2);
        break;
}

在您的情况下,我建议使用if/else if/else,因为它更为推荐。

该开关充当案例切换器,这意味着您无法进行比较来创建案例,只能逐个案例列出案例,并在此案例中执行一些功能。if/else结构适合进行比较,因为if调用中的预期结果始终是布尔值

例如:

switch (true) {
    case num > 0:
        console.log("num++");
        break;
    case num < 0:
        console.log(num-2);
        break;
}

在您的情况下,我建议使用if/else if/else,因为它更为推荐。

在“case”中,您不执行逻辑,只需指定案例需要什么。给定一个num列表,您可以为每个num指定一个大小写,并相应地执行逻辑。switch语句不是这样工作的。num的值将与case表达式的值进行比较。你为什么要把它当作开关呢?代码的if版本没有问题。因为我想学习两种方法,但谢谢你的帮助。如果“案例”你不执行逻辑,你只需要指定案例需要什么。给定一个num列表,您可以为每个num指定一个大小写,并相应地执行逻辑。switch语句不是这样工作的。num的值将与case表达式的值进行比较。你为什么要把它当作开关呢?代码的if版本没有问题。因为我想学习两种方法,但感谢您的帮助。broCases不能是表达式-不正确。@georg在查看文档后,似乎可以根据开关验证表达式。。。但这似乎是一个黑客,因为它似乎充当了一个反向开关。在这种情况下,传统的if-else就足够了。Cases不能是表达式-不是true。@georg在查看文档后,似乎可以根据开关验证表达式。。。但这似乎是一个黑客,因为它似乎充当了一个反向开关。在这种情况下,一个传统的if-else就足够了。兄弟,为什么是真的`你能解释一下吗?兄弟为什么是真的`“你能解释一下吗?”?