【发布时间】:2013-05-23 15:59:46
【问题描述】:
即使我将计数变量 = 设置为 false,我也无法停止此循环。它不会转到 Main 类中调用的下一个方法。任何帮助将不胜感激。
主类
public class Main {
public static void main(String[] args) {
Var V = new Var();
End E = new End();
V.enter();
E.end();
}
}
变量类
public class Var {
static int x = 0;
static boolean count = true;
public static void enter(){
while (count = true ){
x = x+10;
System.out.println(x);
count = false;
}
}
}
【问题讨论】:
-
您分配
count = true而不是比较count == true意味着您实际上只有while (true),从而导致无限循环。 -
有助于避免此类错误的常用技巧是将常量放在运算符的左侧,例如:
while (true == count)。如果您错误地使用赋值运算符=而不是比较运算符==,编译器会立即告诉您,检测到尝试将值分配给常量。 -
@mustaccio 不,不是。在 Java 中执行此操作的正确方法是
while(count)- 绝对没有理由将其与任何东西进行比较。 -
@Brian Roach:“正确的方法”?根据谁?
-
有常识的人吗?为什么要添加多余且无用的比较?为什么还要引入意外键入
=而不是==并触发编译器错误的可能性?请解释为什么这是一个好主意和正确的方法,而不是简单地评估完全消除问题的布尔值。
标签: java loops if-statement while-loop