2016-10-14 37 views
0
import java.util.Scanner; 

public class GrocerySorter { 
    public enum GroceryItem {GR_APPLES, GR_BANANAS, GR_JUICE, GR_WATER}; 
     public static void main (String [] args) { 

     GroceryItem userItem = GroceryItem.GR_APPLES; 

     if (userItem == GroceryItem.GR_APPLES) { 
      System.out.println("Fruit"); 
      } 
     else if (userItem == GroceryItem.GR_BANANAS) { 
      System.out.println("Fruit"); 
      } 
     else if (userItem == GroceryItem.GR_JUICE) { 
      System.out.println("Drink"); 
      } 
     else if (userItem == GroceryItem.GR_WATER) { 
      System.out.println("Drink"); 
      } 
     else 
      System.out.println("Drink"); 
      } 
     return; 
    } 
} 

我收到了第24行和第26行的錯誤消息(最後一個和第二個到最後一個)。我正在進行枚舉,並且出現錯誤

GrocerySorter.java:24:非法啓動類型 return; ^

GrocerySorter.java:26:類,接口,或枚舉預期 }

+7

你在最後一個'else'之後忘了''''。所以下一個'}'實際上是關閉了這個方法。 – resueman

+0

作爲額外的建議,你可以使用開關這種情況下,它會使代碼更清潔,並希望能夠防止這種錯誤。 – Slava

+0

'return;'語句沒用。去掉它。 –

回答

2

你缺少{最終別的了。

此外,我建議您使用switch而不是if else

switch (userItem) { 
     case GR_APPLES: 
     System.out.println("Fruit"); 
     break; 
     case GR_BANANAS: 
     System.out.println("Fruit"); 
     break; 
     default: 
     break; 
    } 
+1

工作正常!謝謝你們,我很感激。切換會更好,下次我會記住這一點! – Daniel