import java.util.*;
public class TestEnum {
public static void main(String[] args) {

Scanner sc = new Scanner(System.in);
System.out.println("Enter a Size:(SMALL,MEDIUM,LARGE,EXTRA_LARGE)");
String s = sc.next().toUpperCase();
Size size = Enum.valueOf(Size.class,s);
System.out.println("size=" + size);
System.out.println("abbreviation=" + size.getAbbreviation());
if(size == Size.EXTRA_LARGE) {
System.out.println("good");
}
}}enum Size {
SMALL("S"),MEDIUM("M"),LARGE("L"),EXTRA_LARGE("XL"); private String abbreviation; private Size(String abbreviation) {
this.abbreviation = abbreviation;
} public String getAbbreviation() {
return abbreviation;
}}
为什么执行的顺序是先打印Enter a Size:(SMALL,MEDIUM,LARGE,EXTRA_LARGE)",后来才让我输入呢。

解决方案 »

  1.   

    因为你先打印:System.out.println("Enter a Size:(SMALL,MEDIUM,LARGE,EXTRA_LARGE)");再写:String s = sc.next().toUpperCase();
      

  2.   

    因為執行Scanner的next()方法的時候才開始接收你輸入的內容
      

  3.   

    执行顺序啊 
    Scanner sc = new Scanner(System.in);//创建一个控制台的输入
     System.out.println("Enter a Size:(SMALL,MEDIUM,LARGE,EXTRA_LARGE)");
     String s = sc.next().toUpperCase();//这里才是输入东西
      

  4.   

    创建一个控制台的输入 Scanner sc = new Scanner(System.in);
    提示输入内容 System.out.println("Enter a Size:(SMALL,MEDIUM,LARGE,EXTRA_LARGE)");
    将输入内容输入并同学转换成小写  String s = sc.next().toUpperCase();如果不想看到Enter a Size:(SMALL,MEDIUM,LARGE,EXTRA_LARGE)"。直接删掉这句话就好。(中文提示:请键入一个规格:())
      

  5.   

    为什么我运行报错?No enum const class fengzhuang.Size.W
      

  6.   

    Scanner这句不是放在System.out这句的前面吗?我不输入不是应该阻塞了吗?怎么会打印之后才让我输入呢。