Java嵌套的if-to-switch语句
我无法将下面的嵌套if语句转换为等效的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 (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';
}