【java入門】for文、while文、do-while文とは?continueやbreakなども解説!

java初心者必見!ループ文とは?

Javaにおけるループ文は、指定された条件が満たされる間、
あるいは指定された回数だけ処理を繰り返すための構造です。
主な種類にはforループ、whileループ、do-whileループがあります。

この記事ではjavaのループ文について解説してます!一緒に学びましょう!

目次

Javaのループ文(for文、while文、do-while文)とは

forループ文の書き方

forループ: 初期化、条件式、更新処理を含む構造で、指定した条件が満たされる間、同じ処理を繰り返し実行する。

for (初期化式; 条件式; 更新式) {
    // 条件が真の間、繰り返し実行される処理
}

この構文は、一連の処理を一定の条件が真の間、繰り返し実行するためのものです。

最初に、初期化式が実行されます。次に、条件式が評価されます。
条件式が真の場合、中括弧 {} 内の処理が実行されます。
その後、更新式が実行され、再び条件式が評価されます。
条件式が偽になるまで、このプロセスが繰り返されます。

この構文は、反復処理(ループ)を行う際に使用されます。例えば、配列の各要素を処理したり、ある範囲の数値を処理したりする際に利用されます。

新人:グラミちゃん

繰り返し処理ってどうやってするの?

エンジニア:プロくん

forループを使うよ。初期化、条件式、更新式を指定して、処理を繰り返すよ。

forループ

for (int i = 0; i < 5; i++) {
    System.out.println("iの値は: " + i);
}

forループを使って0から4までの数字を順番に表示する処理を行います。

  1. int i = 0;: 変数 i を0で初期化します。
  2. i < 5;: 条件式 i が5未満の間、以下の処理を繰り返します。
  3. i++: ループの最後に変数 i を1増やします。
  4. System.out.println("iの値は: " + i);: 現在の i の値を表示します。+ 演算子を使って文字列 “iの値は: ” と変数 i の値を連結しています。

つまり、このプログラムは0から4までの数字を順番に出力するものです。

forループ 結果

iの値は: 0
iの値は: 1
iの値は: 2
iの値は: 3
iの値は: 4

whileループ文の書き方

whileループ: 条件式が真の場合に、指定した処理を繰り返し実行する構造。条件が満たされなくなるまで続く。

while (条件) {
    // 条件が真の間、繰り返し実行される処理
}

この構文は、条件が真の間、繰り返し実行される処理を提供します。

最初に、条件が評価されます。
条件が真の場合、中括弧 {} 内の処理が実行されます。
その後、再び条件が評価され、条件が偽になるまでこのプロセスが繰り返されます。

for ループとは異なり、while ループでは初期化式や更新式は直接提供されず、条件のみが与えられます。そのため、while ループは条件が真である間、処理を繰り返し実行することができます。

while ループは、ループ回数が事前にわからない場合や、特定の条件が満たされるまで処理を繰り返す必要がある場合によく使用されます。

新人:グラミちゃん

条件を満たす限り繰り返すってこと?

エンジニア:プロくん

そうだね。条件がtrue(真)の間はループが続くよ。

whileループ

int i = 0;
while (i < 5) {
    System.out.println("iの値は: " + i);
    i++;
}

whileループを使用しているこのプログラムも0から4までの数字を順番に表示する処理を行いますが、方法が少し異なります。

  1. int i = 0;: 変数 i を0で初期化します。
  2. while (i < 5) {: 条件式 i が5未満の間、以下の処理を繰り返します。
  3. System.out.println("iの値は: " + i);: 現在の i の値を表示します。+ 演算子を使って文字列 “iの値は: ” と変数 i の値を連結しています。
  4. i++;: ループの最後に変数 i を1増やします。

これにより、0から4までの数字が順番に表示されます。

whileループ 結果

iの値は: 0
iの値は: 1
iの値は: 2
iの値は: 3
iの値は: 4

do-whileループ文の書き方

do-while: 最低でも1回は処理を実行し、その後条件式を評価し、条件が真の場合に繰り返し処理を行う構造。

do {
    // まず1回実行され、その後条件が真の場合繰り返し実行される処理
} while (条件);

この構文は、まず一度だけ処理を実行し、その後に条件が真の場合に繰り返し実行する処理を提供します。

まず、do ブロック内の処理が1回実行されます。
その後、while キーワードの後に続く条件が評価されます。
条件が真の場合、do ブロック内の処理が再度実行されます。
このプロセスは、条件が偽になるまで続きます。

do-while ループは、最低でも1回の実行が保証されるため、特定の処理を最初に実行した後、条件に従って追加の処理を繰り返し実行する際に有用です。条件が最初から偽であっても、do ブロック内の処理は少なくとも1回は実行されます。

新人:グラミちゃん

do-whileループって何が違うの?

エンジニア:プロくん

最初の1回は条件をチェックせずに必ず処理が実行されるよ。

do-while

int i = 0;
do {
    System.out.println("iの値は: " + i);
    i++;
} while (i < 5);

このプログラムも0から4までの数字を順番に表示する処理を行いますが、do-whileループを使っている点が異なります。

  1. int i = 0;: 変数 i を0で初期化します。
  2. do {: 以下の処理をまず1度実行し、その後に条件式をチェックします。
  3. System.out.println("iの値は: " + i);: 現在の i の値を表示します。+ 演算子を使って文字列 “iの値は: ” と変数 i の値を連結しています。
  4. i++;: ループの最後に変数 i を1増やします。
  5. while (i < 5);: 条件式 i が5未満の間、ループを続けます。

do-whileループは、条件式を最後にチェックするため、ループ内の処理が最低でも1回は実行されます。

do-whileループ 結果

iの値は: 0
iの値は: 1
iの値は: 2
iの値は: 3
iの値は: 4

Javaの制御構造のネストとブレイク(break)

Javaの制御構造のネストとは?

制御構造の中に別の制御構造を組み込むこと(for文の中にfor文など)ができます。これをネストと呼びます。

新人:グラミちゃん

制御構造の中に別の制御構造を書けるの?

エンジニア:プロくん

そうだよ。例えばforループの中に別のforループを書くことができるよ。

ネスト 例

for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
        System.out.println("i: " + i + ", j: " + j);
    }
}

このコードは、Java言語でネストされた for ループを使用して書かれたプログラムです。
具体的には、0から2までの値を持つ変数 i を外側のループで使い、0から2までの値を持つ変数 j を内側のループで使っています。これにより、すべての i と j の組み合わせが表示されます。

以下がプログラムの詳細です。

  1. for (int i = 0; i < 3; i++) {: 外側のループ。変数 i を0から2まで1つずつ増やしながら、以下の処理を繰り返します。
  2. for (int j = 0; j < 3; j++) {: 内側のループ。変数 j を0から2まで1つずつ増やしながら、以下の処理を繰り返します。
  3. System.out.println("i: " + i + ", j: " + j);: 変数 i と変数 j の値を表示します。
  4. 内側のループの終わり。
  5. 外側のループの終わり。

これにより、外側のループが1周するごとに内側のループが3回実行され、全体として9つの組み合わせが表示されます。

ネスト 実行結果

i: 0, j: 0
i: 0, j: 1
i: 0, j: 2
i: 1, j: 0
i: 1, j: 1
i: 1, j: 2
i: 2, j: 0
i: 2, j: 1
i: 2, j: 2

Javaのforループ文の中断(break文)

新人:グラミちゃん

ループの途中で中断したいときはどうするの?

エンジニア:プロくん

break文を使うよ。条件が成立したらループを抜けることができるよ。

ループ内で条件に合致した場合、そのループを中断するためにbreak文を使用します。

break文 例

for (int i = 0; i < 5; i++) {
    if (i == 3) {
        break;
    }
    System.out.println("iの値は: " + i);
}

ループの中で、条件文 if (i == 3) を用いて i の値が3になったときにループを終了するように設定されています。これは break; ステートメントを使って実現されています。

以下がプログラムの詳細です。

  1. for (int i = 0; i < 5; i++) {: 変数 i を0から4まで1つずつ増やしながら、以下の処理を繰り返します。
  2. if (i == 3) {: 変数 i の値が3と等しい場合、以下の処理を行います。
  3. break;: ループを終了します。
  4. System.out.println("iの値は: " + i);: i の値を表示します。
  5. ループの終わり。

これにより、 i の値が3になるまでの間、 i の値が表示されますが、 i の値が3になるとループが終了します。

break文 実行結果

iの値は: 0
iの値は: 1
iの値は: 2

Javaのfor ループの次の繰り返しへ(continue文)

特定の条件が成立した場合、そのループの残りの処理をスキップし、
次の繰り返しに進むためにcontinue文を使用します。

新人:グラミちゃん

特定の条件の場合は処理をスキップして次に行くってこと?

エンジニア:プロくん

そうだね。continue文を使うと、条件が成立した場合はその時点での処理をスキップして、次の繰り返しに進むよ。

continue文 例

for (int i = 0; i < 5; i++) {
    if (i == 2) {
        continue;
    }
    System.out.println("iの値は: " + i);
}

ループの中で、条件文 if (i == 2) を用いて i の値が2になったときに、その後の処理をスキップして次の反復に進むように設定されています。これは continue; ステートメントを使って実現されています。

以下がプログラムの詳細です。

  1. for (int i = 0; i < 5; i++) {: 変数 i を0から4まで1つずつ増やしながら、以下の処理を繰り返します。
  2. if (i == 2) {: 変数 i の値が2と等しい場合、以下の処理を行います。
  3. continue;: ループの現在の反復を終了し、次の反復に進みます。
  4. System.out.println("iの値は: " + i);: i の値を表示します。
  5. ループの終わり。

これにより、 i の値が2のときだけ表示がスキップされ、それ以外の値は表示されます。

continue文 実行結果

iの値は: 0
iの値は: 1
iの値は: 3
iの値は: 4

まとめ


Javaにおけるループ文は、指定された条件が満たされる間、あるいは指定された回数だけ処理を繰り返すための構造です。主な種類にはforループ、whileループ、do-whileループがあります。

これらのループを使うことで、繰り返し処理を行うことができます。

各ループの書き方や使い方、例、そして制御構造のネスト、中断、スキップなども覚えとこう!

目次