我想要做一个简单的程序,打印出不同的短语取决于是否满足特定的条件。我们在一个函数中输入2个整数参数,它评估一个数字是大于,小于,还是两个数字是否相等。我的代码如下所示:开关语句总是默认在javascript
function CheckNums(num1,num2) {
switch (num1,num2) {
case (num2>num1):
console.log('num2 greater than num1');
break;
case (num2 === num1):
console.log('both equal');
break;
default:
console.log('num1 greater than num2');
}
}
任何情况下,无论是我输入:CheckNums(4,5),CheckNums(2,2),CheckNums(5,4)的程序运行默认。
重要提示:林没有要求替代解决这个问题。我已经设法使用if语句或三元运算符来解决它。我问的是:为什么这个开关不工作?
问题是I`ve商议,并没有解决我的问题:
JavaScript switch statement only executes the default case
溶胶:这个家伙在的Math.random()生成器只生成的数字有问题小数位,当然,除了默认值以外,不会出现在任何一种情况下。
JS Switch case not working correctly always default is executed
溶胶:这家伙是输入查询字符串作为参数,并期待在案件INT值。
其他说明:
- 也许答案就在于使用parseInt函数? (假设参数不是作为整数输入的。)
-I删除了案例中的括号。这并没有解决我的问题。
- 对于第二种情况,我还尝试使用等号运算符(==)而不是身份运算符(===)。第二起案件仍然没有奏效。
我的问题出在哪里藏身最好的猜测: 当我在谷歌浏览器的控制台程序编译,我得到以下通知:“未定义”。所以,我认为那是不允许我的情况适当地评估参数的。有些东西没有被正确定义。
您只能切换1个表达式。案例线必须是一些价值,而不是一个表达。 – James
您正在错误地使用switch语句。使用switch语句,您可以测试不同的值,而不是条件。 – snixtho