【发布时间】:2013-11-27 08:50:34
【问题描述】:
我创建了这个简单的类,因为我刚刚意识到,我不明白 if 语句在 while 循环中是如何工作的。我似乎不明白他们的优先级如何??
为什么这段代码会出现我没有得到的无限循环??你能解释一下吗?
package sam;
public class Sam {
public static void main(String[] args) {
boolean actif = true;
boolean wake = false;
while(actif==true ){
System.out.println("Statut :"+actif);
if(actif && wake){
System.out.println("Actif :"+actif);
System.out.println("Wake :"+wake);
if(wake){
System.out.println("Wake est activé");
}
if(actif){
actif=false;
}
}
}
}
}
我知道,如果我将其作为第一个条件向下移动,则循环会正确中断:
if(actif){
actif=false;
}
你能告诉我吗?
【问题讨论】:
-
您使用的语言应该始终是您的标签之一。并且标签也不应该出现在标题中。最后,在发布代码时,突出显示该块并点击
{}按钮,以便将其正确格式化为代码。 (并且,与语言标签一起,我们得到语法高亮) -
在一个循环内测试
actif,该循环仅在actif是true时才执行,并且在由于外部测试完全没有意义而没有更改的地方。 -
不要写
while(actif==true ),因为while(actif)已经说明了一切。
标签: java loops if-statement while-loop