我在将下面的嵌套if语句转换为等效的switch语句时遇到麻烦。如果有人可以给我一些建议,将不胜感激。
if (num1 == 5)
myChar = ‘A’;
else
if (num1 == 6 )
myChar = ‘B’;
else
if (num1 = 7)
myChar = ‘C’;
else
myChar = ‘D’;
非常简单,只需使用数字作为您要打开的东西。您的else
大小写成为default
大小写。
switch (num1) {
case 5:
myChar = 'A';
break;
case 6:
myChar = 'B';
break;
case 7:
myChar = 'C';
break;
default:
myChar = 'D';
break;
}
如果值遵循这样的简单模式,则根本不需要switch
。例如,您可以执行
myChar = num1 >= 5 && num1 <= 7 ? (char) ('A' + num1 - 5) : 'D';
如果num1
始终为5
,6
,7
或8
,则可以执行
myChar = (char) ('A' + num1 - 5);
有关更多详细信息,请查阅文档: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’;
}
在JDK 12中,扩展开关将允许您直接将char值分配给开关。这样构造您的开关:
char myChar = switch(num1) {
case 5 -> 'A';
case 6 -> 'B';
case 7 -> 'C';
default -> 'D';
}