Java嵌套的if-to-switch语句

Java嵌套的if-to-switch语句,java,if-statement,nested,switch-statement,Java,If Statement,Nested,Switch Statement,我无法将下面的嵌套if语句转换为等效的switch语句。如果有人能给我一些建议,我将不胜感激 if (num1 == 5) myChar = ‘A’; else if (num1 == 6 ) myChar = ‘B’; else if (num1 = 7) myChar = ‘C’; else myChar = ‘D’; 非常简单,只要使用数字作为您想要打开的东西。您的else案例将成为默认案例 switch (num1) { case 5:

我无法将下面的嵌套if语句转换为等效的switch语句。如果有人能给我一些建议,我将不胜感激

if (num1 == 5)
    myChar = ‘A’;
else
if (num1 == 6 )
    myChar = ‘B’;
else
if (num1 = 7)
    myChar = ‘C’;
else
    myChar = ‘D’;

非常简单,只要使用数字作为您想要打开的东西。您的
else
案例将成为
默认案例

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

有关更多详细信息,请查看文档:


如果值遵循这样的简单模式,则根本不需要
开关。比如你能做什么

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

在JDK12中,扩展开关将允许您直接向开关分配char值。将交换机构造为:

char myChar = switch(num1) {
    case 5 -> 'A';
    case 6 -> 'B'; 
    case 7 -> 'C';
    default -> 'D';
}

请显示您对
开关所做的任何尝试
语句,以及遇到的任何问题。注意:如果
块未嵌套,则显示这些
。对于类似的事情,他也可以在switch语句上使用字符数组
char[]chars={'A','B','C','D'};int指数=num1-5;myChar=chars[index]这将只返回A或D。您应该更改您的case语句的值。在Java中展示一个相当新的特性是很好的,但我认为还值得为Java 12之前的版本添加一个示例。
myChar = (char) ('A' + num1 - 5);
char myChar = switch(num1) {
    case 5 -> 'A';
    case 6 -> 'B'; 
    case 7 -> 'C';
    default -> 'D';
}