lang
1 do{ 2 System.out.println(); 3 System.out.println("投入金額; " + money); 4 System.out.println("購入する商品番号を入力してください。"); 5 System.out.println("1 :" + juice[1] + " " + price[1] + "円"); 6 System.out.println("2 :" + juice[2] + " " + price[2] + "円"); 7 System.out.println("3 :" + juice[3] + " " + price[3] + "円"); 8 System.out.println("4 :" + juice[4] + " " + price[4] + "円"); 9 System.out.print("番号(1~4) (それ以外の数字)>"); 10 int number = sc.nextInt(); 11 System.out.println(); 12 if(number < 1 || 4 < number ){ 13 System.out.print("ご購入ありがとうございました。またのご利用お待ちしております。"); 14 count[number] += 1; 15 break; 16 } 17 if(price[number] < money){ 18 System.out.println("「" + juice[number] + "を購入した"); 19 }else{ 20 System.out.print("購入金額が足りません。"); 21 continue; 22 } 23 }while(money > 120);
do文の中にこういうif文を書いていたのですが結果がfalseの場合でもdoの最初に戻るようにしたいのですがどうすればいいのでしょうか。
breakを使ってみましたがだめでした。
まず「何をどうするコードなのか」を教えて下さい.そうでないと何のためにどこから戻りたいのかがよくわかりません.
自動販売機のプログラムでjuice[1]〜[4]に飲み物の名前、price[1]〜[4]に飲み物の値段が入っています。
numberで選んだ数字の値段がmoney以上なら購入しその値段をmoneyから引いてまた飲み物選択に戻ります。1〜4以外の数字が選ばれた場合はお釣りを出します(未記入)
例えばお金を入れて4を選んだ場合4は投入金額より高いので購入金額が足りないことを伝えてまた飲み物選択に戻ります。
選んだ商品の値段が所持金以下の場合に所持金から価格を引いて戻るのと,所持金が足りない場合にメッセージを出して戻るのとでは,「戻る」ことに本質的な違いがありますか?
ないと思います。
だとすればこのままでも(continueがなくても)望む動作をするはずですが
なりませんでした。。。
最初からmoneyの値が120未満ということはないですか?
×未満 ○以下
doの上にifがありその場合はdo文に入ってこないようになってます。
それならdo-whileじゃなくてwhile文を使えば上のif文は不要になります.やっぱり全体がわからないとよくわからないので全体を見せてください.
あとループに戻らない実行結果を載せてくれると幸いです