Java Can';t在while循环中设置变量
Java新手,如果这是一个愚蠢的问题,很抱歉。我想在Java Can';t在while循环中设置变量,java,Java,Java新手,如果这是一个愚蠢的问题,很抱歉。我想在while循环中为几个变量分配新值,但这不起作用。我在尝试编译时遇到一个错误“局部变量newString可能尚未初始化”。下面是一个例子: public class Test { public static String example() { String first; String second; String newString; int start = 1;
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());
}
}
公共类测试{
公共静态字符串示例(){
先串;
弦秒;
字符串新闻字符串;
int start=1;
while(start出现此错误,因为编译器不知道newString
在返回之前是否会初始化
虽然您知道和新闻字符串
在返回之前是否会初始化
虽然您知道和新闻字符串
在返回之前是否会初始化
虽然您知道和新闻字符串
在返回之前是否会初始化
虽然您知道和newString
作为返回值,这是一种读取操作。
尽管您为newString
指定了一个值,但这是在有条件的情况下完成的(startJava中有一条规则,所有局部变量在第一次读取之前都必须初始化。您使用newString
作为返回值,这是一种读取操作。
尽管您为newString
赋值,但它是在有条件的情况下完成的(startJava中有一条规则,所有局部变量在第一次读取之前都必须初始化。您使用newString
作为返回值,这是一种读取操作。
尽管您为newString
赋值,但它是在有条件的情况下完成的(startJava中有一条规则,所有局部变量在第一次读取之前都必须初始化。您使用newString
作为返回值,这是一种读取操作。
尽管您为newString
赋值,但它是在有条件的情况下完成的(start当您从一个方法返回一个变量时,编译器需要确保将一个值分配给该变量(在您的例子中是newString
)
虽然您很清楚,条件start<4
在某些情况下将是true
,但编译器没有足够的智能来理解这一点,这意味着您必须只返回变量,变量肯定有值
根据方法的目的,您有以下机会:
String newString = "";
在这种情况下,您可以确定您的方法永远不会返回null
,这在某些情况下可能很难找到错误
另一个机会是
String newString = null;
如果要允许方法返回null
值
很明显,在这种情况下,您最终将输入if
-块并为变量newString
赋值,而在其他情况下,这一点并不明显,因此您需要确定是否允许方法返回null
值。当您从方法返回变量时,编译器需要确保将一个值分配给该变量(在您的例子中是newString
)
虽然您很清楚,条件start<4
在某些情况下将是true
,但编译器没有足够的智能来理解这一点,这意味着您必须只返回变量,变量肯定有值
根据方法的目的,您有以下机会:
String newString = "";
在这种情况下,您可以确定您的方法永远不会返回null
,这在某些情况下可能很难找到错误
另一个机会是
String newString = null;
如果要允许方法返回null
值
很明显,在这种情况下,您最终将输入if
-块并为变量newString
赋值,而在其他情况下,这一点并不明显,因此您需要确定是否允许方法返回null
值。当您从方法返回变量时,编译器需要确保将一个值分配给该变量(在您的例子中是newString
)
虽然您很清楚,条件start<4
在某些情况下将是true
,但编译器没有足够的智能来理解这一点,这意味着您必须只返回变量,变量肯定有值
根据方法的目的,您有以下机会:
String newString = "";
在这种情况下,您可以确定您的方法永远不会返回null
,这在某些情况下可能很难找到错误
另一个机会是
String newString = null;
如果要允许方法返回null
值
很明显,在这种情况下,您最终将输入if
-块并为变量newString
赋值,而在其他情况下,这一点并不明显,因此您需要确定是否允许方法返回null
值。当您从方法返回变量时,编译器需要确保将一个值分配给该变量(在您的例子中是newString
)
虽然您很清楚,条件start<4