2013-05-20 104 views
-16

我收到編譯器錯誤,說明變量nameOfMonth可能尚未初始化。編譯器錯誤,變量nameOfMonth可能尚未初始化

我知道這可能是一個簡單的修復,但我卡住了,似乎無法在Google上找到答案。

public class Switch 
{ 
    public static void main (String [] args) 
     { 
     int month; 
     String monthString, nameOfMonth; 
     month=ConsoleInput.readInt("Enter Month in the form, e.g- January = 1, Febuary = 2, etc"); 
     monthString = nameOfMonth; 
     System.out.println(monthString); 
     } 

     protected static String nameOfMonth(int month) 
     { 
     String monthString; 
     switch(month) 
     { 
       case 1: monthString = "January"; 
         break; 
       case 2: monthString = "Febuary"; 
         break; 
       case 3: monthString = "March"; 
         break; 
       case 4: monthString = "April"; 
         break; 
       case 5: monthString = "May"; 
         break; 
       case 6: monthString = "June"; 
         break; 
       case 7: monthString = "July"; 
         break; 
       case 8: monthString = "August"; 
         break; 
       case 9: monthString = "September"; 
         break; 
       case 10: monthString = "October"; 
         break; 
       case 11: monthString = "November"; 
         break; 
       case 12: monthString = "December"; 
         break; 
       default: monthString = "Invalid Month"; 
         break; 
     } 
     return monthString; 
     } 
} 

回答

0

你想調用一個名爲nameOfMonth的方法,你不想用這個名字聲明另一個字符串。更改

String monthString, nameOfMonth; 
    month=ConsoleInput.readInt("Enter Month in the form, e.g- January = 1, Febuary = 2, etc"); 
    monthString = nameOfMonth; 
    System.out.println(monthString); 

String month=ConsoleInput.readInt("Enter Month in the form, e.g- January = 1, Febuary = 2, etc"); 
    String monthString = nameOfMonth(month); 
    System.out.println(monthString); 
0

由於錯誤狀態,您嘗試使用一個變量(nameOfMonth)值之前它被初始化。

您需要使用:

month=ConsoleInput.readInt("Enter Month in the form, e.g- January = 1, Febuary = 2, etc"); 
String monthString = nameOfMonth(month); 

當你真的不使用nameOfMonth變量,但nameOfMonth方法

String monthString, nameOfMonth; 
month=ConsoleInput.readInt(
    "Enter Month in the form, e.g- January = 1, Febuary = 2, etc"); 
monthString = nameOfMonth; // Correct compiler error here. 

我懷疑意味着調用相同的命名方法的代碼:

2

nameOfMonth它被用來在分配的右側前未初始化。

monthString = nameOfMonth(month); 

nameOfMonth變量是不需要的。