Java как использовать глобальные переменные в инструкции switch

У меня три целых глобальных переменных:

public static int a = 1;
 public static int b = 2;
 public static int c = 3;

Я хочу делать:

int code = dis.readInt();
switch(code)
{
 case a: 
 ......
 break;
 case b:
 ......
 break;
 case c:
 ......
 break;
}

Но он не работает, может ли кто-нибудь помочь? Благодарю!

2 ответа

Поскольку у вас только 1 символ, я бы не рекомендовал использовать String, вместо этого используйте char.

char string=args[0];

а затем следуйте за ответом, который дал Ян Нильсен.


Оператор switch Java может принимать " Constant Expressions " и " Enum Constant Names ", как указано в разделе 14.11 Спецификации языка Java.

Если вы можете предоставить немного больше контекста, может быть доступно лучшее решение проблемы; в противном случае это будет так близко, как вы получите в Java:

public class Constant
{
 public static final int a=1;
 public static final int b=2;
 public static final int c=3;

 public static void main(String[] args)
 {
 if(0 == args.length)
 {
 System.exit(-1);
 }
 String string=args[0];
 int value=Integer.parseInt(string);

 switch(value)
 {
 case a:
 System.out.println("It an 'a'");
 break;
 case b:
 System.out.println("It an 'b'");
 break;
 case c:
 System.out.println("It an 'c'");
 break;
 default:
 System.out.println(String.format("It a mystery '%s'",value));
 break;
 }
 }
}

licensed under cc by-sa 3.0 with attribution.