我想做一个简单的程序,根据是否满足特定条件,打印出不同的短语。我们在一个函数中输入2个整数参数,它会评估一个数字是否大于,小于,或者两个数字是否彼此相等。我的代码看起来像这样:
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语句或三元运算符解决了这个问题。我想问的是 * 为什么这个开关不工作?
我咨询的问题没有解决我的问题:
JavaScript switch statement only executes the default case
解决办法:这家伙有一个问题,Math.random()生成器只生成小数位数,当然,除了默认值,这两种情况都不会发生。
JS Switch case not working correctly always default is executed
解决办法:这个家伙输入字符串作为参数,并期待在案件中的int值。
其他备注:
- 也许答案在于使用Parseint?(假设参数不作为整数输入。)
- 我把箱子里的括号去掉了但这并没有解决我的问题。
对于第二种情况,我也尝试使用相等运算符(==)而不是恒等运算符(===)。第二个案例仍然没有奏效。
**我最好的猜测问题隐藏在哪里:**当我在谷歌Chrome控制台编译程序时,我得到以下通知:“undefined”。所以,我认为这就是为什么我的案例不能正确地评估参数。有些东西没有被正确定义。
3条答案
按热度按时间70gysomp1#
如果你真的想使用switch语句来实现这一点,你必须要聪明。提示:如果更容易。
jaql4c8m2#
为什么这个开关不工作?
因为你所写的相当于
您正在将一个数字与布尔值进行比较,这永远不会为真,因此如果没有任何情况匹配,则执行
default
。g6ll5ycj3#
here提供了关于它为什么不工作的解释。这与开关实际工作方式有关。
下面是修改后的代码: