質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.78%

do文中のifのfalseから最初に戻りたい

受付中

回答 5

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 2,191

score 20

                    do{
            System.out.println();
            System.out.println("投入金額; "  + money);
            System.out.println("購入する商品番号を入力してください。");
            System.out.println("1 :" + juice[1] + " " + price[1] + "円");
            System.out.println("2 :" + juice[2] + " " + price[2] + "円");
            System.out.println("3 :" + juice[3] + " " + price[3] + "円");
            System.out.println("4 :" + juice[4] + " " + price[4] + "円");
            System.out.print("番号(1~4) (それ以外の数字)>");
            int number = sc.nextInt();
            System.out.println();
            if(number < 1 || 4 < number ){
                System.out.print("ご購入ありがとうございました。またのご利用お待ちしております。");
                count[number] += 1;
                break;
            }
            if(price[number] < money){
                System.out.println("「" + juice[number] + "を購入した");
            }else{
                System.out.print("購入金額が足りません。");
                continue;
            }
        }while(money > 120);
do文の中にこういうif文を書いていたのですが結果がfalseの場合でもdoの最初に戻るようにしたいのですがどうすればいいのでしょうか。
breakを使ってみましたがだめでした。
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • next_door

    2015/06/03 23:50

    doの上にifがありその場合はdo文に入ってこないようになってます。

    キャンセル

  • swordone

    2015/06/04 00:00

    それならdo-whileじゃなくてwhile文を使えば上のif文は不要になります.やっぱり全体がわからないとよくわからないので全体を見せてください.

    キャンセル

  • swordone

    2015/06/04 00:02

    あとループに戻らない実行結果を載せてくれると幸いです

    キャンセル

回答 5

0

その場合はcontinueを使います

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/06/03 22:48

    ご回答ありがとうございます。
    continueを入れてみましたが戻りませんでした。

    キャンセル

  • 2015/06/03 22:49

    そうなると何をしたいのかよくわからないので,コード全体を見せていただけないでしょうか.

    キャンセル

0

さっきとif文が全然違うように思いますが・・・
ifがfalseなら何もしなくてもdoの最初に戻りませんか?

正直このコード見ていて何をしたいのか謎すぎます.

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/06/03 23:01

    すみません間違いがあったので直しました。

    キャンセル

0

回答に合わない内容でしたので削除いたしました。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/06/04 00:44

    情報追加依頼でのやりとりでわかったんですが,やりたいのは
    ・1-4以外でループ抜ける
    ・商品選んで払えたら払って商品選択に戻る
    ・払えなければ足りない旨表示して商品選択に戻る
    という仕様のようなので,これではないのだと思います.

    キャンセル

  • 2015/06/04 00:59

    まったくその通りの動きのはずでしたが残念です。

    キャンセル

0

do{
            System.out.println();
            System.out.println("投入金額; "  + money);
            System.out.println("購入する商品番号を入力してください。");
            System.out.println("1 :" + juice[1] + " " + price[1] + "円");
            System.out.println("2 :" + juice[2] + " " + price[2] + "円");
            System.out.println("3 :" + juice[3] + " " + price[3] + "円");
            System.out.println("4 :" + juice[4] + " " + price[4] + "円");
            System.out.print("番号(1~4) (それ以外の数字)>");
            int number = sc.nextInt();
            System.out.println();
            if(number < 1 || 4 < number ){ // if( 1 <= number && number <= 4 ) 私はこっち派
if(price[number] < money){
                 System.out.println("「" + juice[number] + "を購入した");
                System.out.print("ご購入ありがとうございました。またのご利用お待ちしております。");
                count[number] += 1;
                money -= price[number];
             }else{
                 System.out.print("購入金額が足りません。");
             }
            } else {
                 System.out.print("1~4の商品を選んでね♡。");
           }
}while(money > 120); // ← 商品の最低価格が120円なら (money >= 120)

これじゃだめですか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

質問内容とコードを見る限り、falseの場合はdoの先頭に戻っていると思いますが

falseの時の
希望しているログと
現状のログ

を記述すると、何を行いたいかがわかると思いますよ

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.78%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る