非常に似ているにもかかわらず、一方のループはなぜ動作しているのか不思議です。Java while whileループ式
dmCyl
ループ正の整数が入力されるまでループしたいと思います。これは動作しないループです。しかし、ユーザがintを入力するまでループするhgtCyl
ループが機能します。 (dmCyl < 0)
ループは完全に無視されているようです。何故ですか?
また、hgtCyl = scnr.nextInt();
を中身(after scnr.next())
またはその外側に入れても、動作するループがあります。場所の変更は何ですか?
ありがとうございます!
EDIT: while whileループを設定すると、問題が解決します。
もう一度おねがいします!
ソリューション:
dmCyl = scnr.nextInt();
do{
System.out.print("please insert positive int");
dmCyl = scnr.nextInt();
}while (dmCyl < 0);
オリジナルコード:
int dmCyl = 0;
int hgtCyl = 0;
Scanner scnr = new Scanner(System.in);
while (dmCyl < 0) {
System.out.print("Please enter an integer");
scnr.next();
}
dmCyl = scnr.nextInt();
そして働くループ:
while (!scnr.hasNextInt()){
System.out.print("Please enter an integer");
scnr.next();
}
hgtCyl = scnr.nextInt();
原則として、0は決して0より小さくありません。したがって、最初のループがすぐに終了します。 – shmosel
またはループに入ったときに 'dmCyl'の値は何ですか(最初に' dmCyl <0'をテストする) –
'(dmCyl <0)'は '0 <0'です。 –