我想在 Java 中创建一个通用的 switch case 语句。我正在制作一个程序,在某些时候我必须为 switch 语句制作 32 种不同的情况,例如:case 0 : , case 1 : , .... case 31 :
. 然后在每种情况下,我都必须编写一些代码行。有什么方法可以实现一个通用的 switch case 语句,这样我就不必编写 32 个单独的案例了?
例如:
switch(n){
case k :
.....
{
我怎样才能在java中实现这个?可能吗?
我想在 Java 中创建一个通用的 switch case 语句。我正在制作一个程序,在某些时候我必须为 switch 语句制作 32 种不同的情况,例如:case 0 : , case 1 : , .... case 31 :
. 然后在每种情况下,我都必须编写一些代码行。有什么方法可以实现一个通用的 switch case 语句,这样我就不必编写 32 个单独的案例了?
例如:
switch(n){
case k :
.....
{
我怎样才能在java中实现这个?可能吗?
为什么不只使用一个default
分支:
switch (n) {
// cases for which you need custom behavior...
default:
// use n for the general case
}
您可以使用枚举。例如,这是一个将数字名称与其整数值匹配的枚举:
enum MyDigit
{
ZERO(0),
ONE(1),
TWO(2),
// etc
NINE(9);
private final int intValue;
MyDigit(int intValue)
{
this.intValue = intValue;
}
public int intValue()
{
return intValue;
}
}
枚举非常灵活。例如,您还可以构建所有值的反向映射并使用静态查找方法来获取所需的枚举值。
(是的,有些人会说整数值在这里是多余的,因为我可以使用values()
/ ordinal()
,但这是为了说明)
在每种情况下,我都必须写 2 行,它们的变量取决于情况……所以在情况 0 下,我稍后要使用的变量是 0*L(l 是我想要的变量,首先是它的 L= 8)...那么案例 1 是 1*L ...案例 2 : 2*L 依此类推
好吧,检查您输入的数字是否是 0 到 32 之间的数字,然后执行 n*L
int result = 0;
if(n>=0&&n<32){
result=n*L;
}else{
System.err.println("wrong number");
//or do whatever you have to
}