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