为什么我的Exception程序继续运行?

时间:2017-11-19 20:20:58

标签: java exception while-loop do-while

我有一个程序,但问题是它在我告诉它停止后仍然继续运行。我告诉它在布尔变量变为false时停止运行,但即使变量变为false,程序也会继续运行。我发现程序继续运行的唯一方法是当我取出" = true"参与while语句。那么为什么我需要取出" = true"部分在程序正常运行的声明中?

import java.util.Scanner;

public class EvenOdd {

    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        int num;
        boolean continueLoop=true;
        do {
            try {
                System.out.println("Enter an even number");
                num=input.nextInt();
                if(num%2==0)
                 System.out.println("That is an even number");
                else
                 throw new IllegalArgumentException();
                continueLoop=false;
            }
            catch(IllegalArgumentException ae) {
                System.err.println(ae+"\nThat is a odd number");
            }
        } while(continueLoop=true);
        input.close();
    }

}

1 个答案:

答案 0 :(得分:0)

作为while循环的条件,您使用的是赋值而不是比较。

当您使用continueLoop=true时,值true已分配给continueLoop,而循环只会变为while(true);这是一个无限循环。

使用while(continueLoop == true)作为比较而非作业。