变量初始化在while循环中无效吗?

时间:2017-12-26 15:17:47

标签: java

在做作业时,我在使用do while循环和while循环时发现错误。 它在do while循环中成功运行变量初始化。但不在while循环中。为什么?是什么原因?

class Example{
    public static void main(String args[]){
        int x=100;
        int a,b;

        do{
            a=10;
        }while(x>0);

        while(x>0){
            b=10;
        }
        System.out.println(a);
        System.out.println(b);
    }
}

错误:

variable b might not have been initialized
System.out.println(b);
                   ^1 error

1 个答案:

答案 0 :(得分:3)

这是while循环和do-while循环之间的主要区别:do-while至少执行一次,无论它具有什么条件; while循环可能永远不会执行,具体取决于其条件。因此,在您的情况下,变量a将在do-while体中初始化,但如果while循环中的条件为false,则其主体将不会被执行,因此变量b将不会被执行初始化。编译器不会分析您的代码以确定while循环中的条件是否为真。它不会编译并抛出您在控制台中看到的错误。