【发布时间】:2014-08-05 22:07:26
【问题描述】:
浏览来自各种来源的一些switch 命令教程。我正在尝试基于这个 SwitchDemo 教程创建一个小程序(我已经删除了一些重复的代码以节省空间):
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;
default: monthString = "Invalid month";
break;
}
System.out.println(monthString);
}
}
在此代码中monthString 不需要在String monthString; 行中初始化。但是我想使用Scanner 将用户输入添加到代码中,如下所示:
import java.util.Scanner;
public class App2 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int month = scan.nextInt();
String monthString;
switch (month) {
case 1:
monthString = "January";
break;
case 2:
monthString = "February";
break;
case 3:
monthString = "March";
break;
default:
System.out.println("Invalid month");
break;
}
System.out.println(monthString);
}
}
在这种情况下,代码不起作用,Eclipse 告诉我需要初始化monthString; eclipse 通过将= null 添加到String monthString 来纠正它。
这是什么原因?
P.s 我对 Java 完全陌生,所以你能像向不懂任何编程的人一样解释吗?
谢谢
【问题讨论】:
-
在示例一中,默认给字符串一个值。在示例 2 中,您没有这样做。
标签: java string initialization switch-statement