在这里我试图通过输入月份号来获取输出月份,但是为什么我有错误
-可能尚未初始化“monthString”?
-为什么我没有从“monthString”得到输出字符串?

为什么monthString必须初始化?

import java.util.Scanner;
public class SwitchClass {

public static void main(String[]args)
{
   Scanner input = new Scanner(System.in);
   System.out.printf(" when did u born ? ");
   int monthNumber = input.nextInt();
   String monthString ;

switch (monthNumber)
{
    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;
   }
System.out.println(monthString);       }

 }

最佳答案

如果monthNumber不在1到12之间怎么办?在这种情况下,monthString将不会初始化。声明它时,应该给它一些默认值:

String monthString = null; // or ""

10-01 23:13