我正在尝试与此代码块一起运行,但是它不起作用
Switch (num1>num2) {
case 0:
document.write(num2);
break;
case 1:
document.write(num1);
break;
}
答案 0 :(得分:1)
逻辑操作在Javascript上返回布尔值。
document.write将HTML表达式或JavaScript代码写入文档,console.log在浏览器控制台上打印结果。
switch (num1>num2) {
case true:
console.log(num1);
break;
case false:
console.log(num2);
break;
}
答案 1 :(得分:1)
switch
(小写s)使用严格比较===
,因此11 > 10
之类的布尔值将永远不会===
0
或{{ 1}}。
如果要这样做,则需要测试布尔值:
1
如果由于某些原因给了您数字,您可以使用let num1 = 10
let num2 = 20
switch (num1>num2) {
case false:
console.log(num2);
break;
case true:
console.log(num1);
break;
}
将它们显式地转换为布尔值,但这会引起一些麻烦。
如果您的目标是找到两个数字中的最大值,那么case !!0:
的可读性就很难被击败。
答案 2 :(得分:0)
您只需要在switch语句中使用大于/小于。
var x = 10;
var y = 20;
switch(true) {
case (x > y):
console.log(x);
break;
case ( y > x):
console.log(y);
break;
}
答案 3 :(得分:0)
您可以使用简单的Math.max(5, 10)
;
const numOne = 5;
const numTwo = 10;
console.log(`Bigger number is: ${Math.max(numOne, numTwo)}`);
或者,如果您绝对“必须”使用switch statement
,则可以尝试执行以下操作:
const numOne = 5;
const numTwo = 10;
switch(true) {
case (numOne > numTwo):
console.log(`Bigger number is ${numOne}`);
break;
case (numOne < numTwo):
console.log(`Bigger number is ${numTwo}`);
break;
case (numOne === numTwo):
console.log(`${numOne} is equal to ${numTwo}`);
break;
default: console.log(false, '-> Something went wrong');
}