Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';t在while循环中设置变量_Java - Fatal编程技术网

Java Can';t在while循环中设置变量

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;

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());
    }
}
公共类测试{
公共静态字符串示例(){
先串;
弦秒;
字符串新闻字符串;
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