退出一个循环Java

时间:2013-05-23 15:59:46

标签: java loops if-statement while-loop

即使我将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;
        }
    }

}

6 个答案:

答案 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)使用赋值运算符,而不是相等运算符。赋值运算符在赋值后返回变量的值 - 在本例中为truereference)。

  

在运行时,赋值表达式的结果是赋值发生后变量的值。赋值表达式的结果本身不是变量。

所以你的循环实际上是这样的:

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进行比较。