tun*_*tun 3 java switch-statement
在这里我试图通过输入月份数来获得输出月份,但为什么我有错误 - "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); }
}
Run Code Online (Sandbox Code Playgroud)
如果monthNumber不在1到12之间怎么办?在这种情况下,monthString不会被初始化.您声明时应该给它一些默认值:
String monthString = null; // or ""
Run Code Online (Sandbox Code Playgroud)
在switch语句中添加一个默认大小写是个好主意.
例:
switch (monthNumber) {
case 1: monthString = "January";
break;
//other cases...
default: monthString = "Invalid Month Number";
break;
}
Run Code Online (Sandbox Code Playgroud)
这种方式如果monthNumber不是1-12那么仍然存在switch语句流向的默认情况.