Java 新手,如果这是一个愚蠢的问题,我很抱歉。我想从 while
循环内部为几个变量分配新值,但这不起作用。尝试编译时出现错误“局部变量 newString
可能尚未初始化”。这是一个例子:
public class Test {
public static String example() {
String first;
String second;
String newString;
int start = 1;
while (start<5) {
if (start<4) {
first = "hello";
second = "world";
newString = first + second;
}
start += 1;
}
return newString;
}
public static void main(String[] args) {
System.out.println(example());
}
}
最佳答案
当您从方法返回变量作为结果时,编译器需要确保为该变量分配一个值(在您的情况下是 newString
)。
尽管您很清楚条件 start < 4
将是true
在某些时候,编译器不够智能,无法弄清楚这一点,这意味着您必须仅返回变量,这些变量肯定具有值。
根据您的方法的目的,您有以下机会:
String newString = "";
在这种情况下,您确定您的方法永远不会返回 null
,在某些情况下查找错误可能会很棘手。
另一个机会是
String newString = null;
如果你想让你的方法返回 null
值。
很明显,在这种情况下,您最终将输入 if
-block 并为变量 newString
赋值在其他情况下,它不会那么明显,因此您需要确定是否允许您的方法返回 null
值与否。
关于java - 无法在 while 循环内设置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24111266/