-5
私はプログラムを持っていますが、停止するように指示しても問題はありません。ブール変数がfalseになったときに実行を停止するように指示しましたが、変数がfalseになってもプログラムは実行を続けます。私がプログラムを実行し続けることがわかった唯一の方法は、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();
}
}
'continueLoop = true'は代入であり、常にその行でvariabeをtrueに設定します。基本的なJavaチュートリアルを見てみると、https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html –
を削除し、 '= true'を削除することは適切な修正です。 'someBoolean == true'の比較は冗長です。 'someBoolean'だけで十分です。 –
を慎重に検討してください:while(continueLoop = true); –