gpt4 book ai didi

java - 什么时候需要初始化字符串?

转载 作者:行者123 更新时间:2023-12-01 18:28:33 37 4
gpt4 key购买 nike

浏览各种来源的一些 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 完全陌生,所以你能像向不懂编程的人一样解释一下吗?

谢谢

最佳答案

这是因为 monthString 是一个本地变量,并且您可以在未初始化的地方使用一条路径,并且您仍在尝试使用它。

这在 Java 中是不允许的。我认为原因是 Java 可以用一种简单的方法来防止你犯错误。它迫使您承认您尚未将 monthString 设置为任何内容,但您仍在尝试使用它。十有八九这是开发人员的错误,所以 Java 不会让你这样做。

解决此问题的一种方法是将 monthString 设置为 default: 中的内容。您也可以将其初始化为 null,如 @Eran 所说。

关于java - 什么时候需要初始化字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25149144/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com