hayatedonda
@hayatedonda

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Java ループカウンタ

public class KadaiForOrWhileBreak {

public static void main(String[] args) {

    int num = 0;

    while (true) {

        System.out.println(num);

        num++;

        if (num >= 7) {

            break;
        }
    }

    System.out.println("breakしました");

}

}

ループカウンタが「7」の時、breakするにはどうすれば良いのですか?

0

2Answer

Comments

解答

num++;の行をif (~){~}の後にずらせば良いです。

解答
public class Main {
    public static void main (String [] args) {
        int num = 0;
        while (true) {
            System.out.println (num);
            if (num >= 7) {
                break;
            }
            num++;
        }
        System.out.println ("breakしました");
    }
}
結果
0
1
2
3
4
5
6
7
breakしました

おまけ

答だけではアレなので、元のソースを見てみましょう。

元のコード
public class Main {
    public static void main (String [] args) {
        int num = 0; // 整数numを0に初期化
        while (true) { // 無限に繰り返し
            System.out.println (num); // numを出力
            num++; // numを1増やす
            if (num >= 7) { // numが7以上なら
                break; // 繰り返しを抜ける
            }
        }
        System.out.println ("breakしました");
    }
}

num0から順に増えていきますね。
仮に6まで順当に増えて、6が出力printlnされたとしましょう。
次の行のnum++で、6だったnumは、1増えて7になりますね。
そして、次の行のif (num >= 7) {では、条件が成立するので、繰り返しを抜けてしまいます。
あらあら、6で終わってしまいました。

ここは、出力した値のままで条件を検査する必要がありますよね?
ですから、num++を条件検査の後に移動して、breakせずに繰り返しを続けるときだけ実行されるように変更したのです。

1Like

Comments

  1. @hayatedonda

    Questioner

    すごくわかりやすいご説明ありがとうございます!

Your answer might help someone💌