我有一个程序,但问题是它在我告诉它停止后仍然继续运行。我告诉它在布尔变量变为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();
}
}
答案 0 :(得分:0)
作为while循环的条件,您使用的是赋值而不是比较。
当您使用continueLoop=true
时,值true
已分配给continueLoop
,而循环只会变为while(true)
;这是一个无限循环。
使用while(continueLoop == true)
作为比较而非作业。