如何使用切换大小写在javascript中找到两个数字之间的最大值?

时间:2018-08-11 02:25:12

标签: javascript

我正在尝试与此代码块一起运行,但是它不起作用

Switch (num1>num2) {
case 0:
  document.write(num2);
  break;
case 1:
  document.write(num1);
 break;
}

4 个答案:

答案 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');
}