whileループとifステートメントで作業しています。whileループを取得してifステートメントを続ける
else文が実行されている場合は、ループを続行します。私の理解では、 "続ける"ループを再起動する必要がありますが、ループは再起動しません。
これを修正するための回避策が1つ見つかりました。「cho = 1;」を設定します。しかし、これは本当に必要ですか?この問題を解決するための論理的な方法はありますか?
ありがとうございます!
while (sum < 21 && cho == 1 && sum != 21) {
System.out.println("Do you want to (1)hit or (2) stay?");
cho = scan.nextInt();
if (cho == 1) {
getCard(index++);
if (sum > 21) {
System.out.println("You busted! Dealer wins.");
return;
}
} else if (cho == 2) {
System.out.println("Your value is " + sum);
sum = playerTotal;
}
else{
cho = 1;
System.err.println("The input value given is not a valid integer");
continue; //Does not restart the loop.
}
}
「動作しません」と定義します。デバッガでこれを実行すると、何が行われますか? 'continue'オペレーションは、あなたが何を記述しているのか正確に行います。そして、' continue'キーワードが「動作しません」よりも論理エラーを起こした可能性が高くなります。 – David
'continue'ループを繰り返しますが、条件が変更された場合、ループは終了します。 – Rogue
入力が1または2に等しくないときに条件が変わるのが分かります。引き続き動作させるためには条件が真でなければならないということを理解していませんでした。おかげで – Maximus