即使我将count变量设置为false,也无法停止此循环。它不会转到Main类中调用的下一个方法。任何帮助将不胜感激。
主类
public class Main {
public static void main(String[] args) {
Var V = new Var();
End E = new End();
V.enter();
E.end();
}
}
Var Class
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;
}
}
}
答案 0 :(得分:5)
替换
while (count = true ){
与
while (count == true ){
或只是
while(count){
...
}
答案 1 :(得分:3)
更改
while (count = true) {
到
while (count) {
表达式count = true
是一个赋值,而不是比较,它将使用关系运算符。赋值表达式的结果是赋值,在这种情况下始终为true
。
将布尔表达式与布尔文字(即count == true
或((x && y) || z) == false
)进行比较是丑陋而令人困惑的。只需使用表达式本身(count
或!((x && y) || z)
)。
答案 2 :(得分:2)
即使这应该工作,因为count已经是布尔值。
单个等于while (count =true ){
会导致计数更改为真?
`
public class Var {
static int x = 0;
static boolean count = true;
public static void enter(){
while (count ){
x = x+10;
System.out.println(x);
count = false;
}
}
}
答案 3 :(得分:1)
行while (count = true)
使用赋值运算符,而不是相等运算符。赋值运算符在赋值后返回变量的值 - 在本例中为true
(reference)。
在运行时,赋值表达式的结果是赋值发生后变量的值。赋值表达式的结果本身不是变量。
所以你的循环实际上是这样的:
while (true){
count = true;
x = x+10;
System.out.println(x);
count = false;
}
要解决此问题,您可以使用等于运算符==
或while (count)
。后者风格更好,但都有效。
答案 4 :(得分:0)
变化
while (count = true) {
到
while (count == true) {
答案 5 :(得分:0)
while (count = true ){
x = x+10;
System.out.println(x);
count = false;
}
在这里使用count = true
。这是一个始终如一的真实操作。
所以你要count == true
进行比较。