-4
public static void checkWeight(int startWeight, Number weight){
System.out.println("HERE?!");
y=false;
System.out.println("HEHEHEH");
mainLoop:{
if((y==true)||(startWeight<=50)) {
weight=startWeight;
System.out.println("HERE");
break mainLoop;
}else{
subMainLoop:{
while(z==false) {
int userWeightCheck=Integer.parseInt(JOptionPane.showInputDialog("Your cat's weight: "));
if(userWeightCheck<=50) {
System.out.println("OR HERE");
y=true;
z=true;
break subMainLoop;
}else {
System.out.println("Sorry, but that is not an acceptable input. Try again.");
continue;
}
}
}
}
}
}
こんにちは!私はこの問題を解決できないようです。私はSystem.out.println
を追加して、トラブルシューティングを自分で行っています。私は過去1時間半のインターネットをスキャンしていますが、それでも解決策を見つけることはできません。それは"HEHEHEH"
を出力し、do文はif文を通過する必要があるときには "ここに"表示されません。数字を使用した壊れた検証
私のメインクラスの呼び出しは、このようなものです:
int userWeight=Integer.parseInt(JOptionPane.showInputDialog("Your cat's weight"));
Animal.checkWeight(userWeight, 51);
問題はそれ以外の場合は、ユーザーが番号を入力したときに、それが動作するはずということであるならばその数はである場合にのみ=または< 50、ユーザーが以前の回答を再入力するよう求めるウィンドウがポップアップ表示されます。しかし、それは完全にループを無視しているようです。
大変助かりました! :)
問題は...ですか? * "どちらの条件も満たしていなくても" HEHEHEH "を印刷します" * - そのメッセージを印刷する条件はありません。 – Tom
'System.out.println()'を使う代わりに、デバッガを使う方法を学ぶべきです。これは、バグの追跡に役立ちます。 – Thomas
"HEHEHEH"は、条件がチェックされる前に印刷されます。 –