2012-11-04 10 views
7

निम्नलिखित कोड मुझे देता है: The local variable str may not have been initializedस्विच बयान अप्रारंभीकृत चर

public class experiment{ 

    public static void main(String[] args){ 

     int day = 1; 
     String str; 

     switch (day) { 
     case 1 : str = "nice"; 
     break; 
     } 

     System.out.println(str); 

    } 


} 

तो, मैं str दिया एक null मूल्य, और यह काम किया लेकिन मैं अभी भी सोच रहा हूँ क्यों डॉक्स पर एक मूल्य आरंभ बिना काम पहले, मैं ट्रिपल जांच की है और मुझे नहीं लगता कि मैं कोई लेखन त्रुटि: वहाँ प्रलेखन उदाहरण के switch में एक default मामले बयान है

public class SwitchDemo { 
    public static void main(String[] args) { 

     int month = 8; 
     String monthString; 
     switch (month) { 
      case 1: monthString = "January"; 
        break; 
      case 2: monthString = "February"; 
        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; 
     } 
     System.out.println(monthString); 
    } 
} 

उत्तर

13

क्योंकि। यह कहा जाता है कि कोई अन्य case कथन मिलान नहीं है। अपने कोड में, आपके पास ऐसी कोई "फ़ॉलबैक" नहीं है।

इसलिए, हमेशा कम से कम एक कथन कहा जाता है जिसे हमेशा monthString प्रारंभ किया जाएगा।

संबंधित मुद्दे