Java嵌套是否切换语句

问题描述 投票:2回答:4

我在将下面的嵌套if语句转换为等效的switch语句时遇到麻烦。如果有人可以给我一些建议,将不胜感激。

if (num1 == 5)
    myChar = ‘A’;
else
if (num1 == 6 )
    myChar = ‘B’;
else
if (num1 = 7)
    myChar = ‘C’;
else
    myChar = ‘D’;
java if-statement nested switch-statement
4个回答
2
投票

非常简单,只需使用数字作为您要打开的东西。您的else大小写成为default大小写。

switch (num1) {
    case 5:
        myChar = 'A';
        break;
    case 6:
        myChar = 'B';
        break;
    case 7:
        myChar = 'C';
        break;
    default:
        myChar = 'D';
        break;
}

1
投票

如果值遵循这样的简单模式,则根本不需要switch。例如,您可以执行

myChar = num1 >= 5 && num1 <= 7 ? (char) ('A' + num1 - 5) : 'D';

如果num1始终为5678,则可以执行

myChar = (char) ('A' + num1 - 5);

1
投票

有关更多详细信息,请查阅文档:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html

switch(num1){
 case 5:
   myChar = ‘A’;
   break;
 case 6:
   myChar = ‘B’;
   break;
 case 7:
   myChar = ‘C’;
   break;
 default:
   myChar = ‘D’;
}

0
投票

在JDK 12中,扩展开关将允许您直接将char值分配给开关。这样构造您的开关:

char myChar = switch(num1) {
    case 5 -> 'A';
    case 6 -> 'B'; 
    case 7 -> 'C';
    default -> 'D';
}
© www.soinside.com 2019 - 2024. All rights reserved.