public class EnumTest {
public static void main(String agrs[]){
Scanner in=new Scanner(System.in);
System.out.print("Enter a size:(SMALL,MEDIUM,LARGE,EXTAR_LARGE)");
String input=in.next().toUpperCase();
Size size=Enum.valueOf(Size.class,input);
System.out.print("size="+size);
System.out.print("abbreviation="+size.getAbbreviation());
if (size==Size.EXTAR_LARGE)
System.out.print("Good job--you paid attention to the_.");
}
}
enum Size{
SMALL("S"),MEDIUM("M"),LARGE("L"),EXTAR_LARGE("XL");
private Size(String abbreviation){
this.abbreviation=abbreviation;
}
public String getAbbreviation(){
return abbreviation;
} private String abbreviation;
}
这段代码的输出结果是:Enter a size:(SMALL,MEDIUM,LARGE,EXTAR_LARGE)。它下面好几个输出语句没有执行。这是什么原因呢?请帮忙解释一下!
如果是S或M,L,XL会报IllegalArgumentException
如果输入SMALL或MEDIUM,LARGE,EXTAR_LARGE运行正常
public class EnumTest {
public static void main(String agrs[]){
Scanner in=new Scanner(System.in);
System.out.print("Enter a size:(SMALL,MEDIUM,LARGE,EXTAR_LARGE)");
String input=in.next().toUpperCase();
Size size=Enum.valueOf(Size.class,input); System.out.print("size="+size);
System.out.print("abbreviation="+size.getAbbreviation());
if (size==Size.EXTAR_LARGE)
System.out.print("Good job--you paid attention to the_.Size.EXTAR_LARGE"); else if(size==Size.LARGE){
System.out.print("Good job--you paid attention to the_.Size.LARGE");
}
else if(size==Size.SMALL){
System.out.print("Good job--you paid attention to the_.Size.SMALL"+Size.SMALL);
}
}
}
enum Size{
SMALL("S"),MEDIUM("M"),LARGE("L"),EXTAR_LARGE("XL"); private Size(String abbreviation){
this.abbreviation=abbreviation;
} public String getAbbreviation(){
return abbreviation;
} private String abbreviation;
} 运行:Enter a size:(SMALL,MEDIUM,LARGE,EXTAR_LARGE)
small(自己输入)
size=SMALLabbreviation=SGood job--you paid attention to the_.Size.SMALLSMALL