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