🚀

【Java】繰り返し処理

に公開

while文

指定された条件が成立する(true)間、繰り返し処理を行います。

while( 条件式 ) {
  処理文; // 条件式がtrueの場合、実行される
}

whileの後の条件式は、boolean値(true,false)を返す式ではないといけません。

int num = 0;
while(num < 5) {
  System.out.println("num => " + num);
  num++;
}
実行結果
num => 0
num => 1
num => 2
num => 3
num => 4

num = 5の条件を指定しているのでnumが5になったときにfalseになるので表示が終わっています。

do-while文

while文と同様に指定された条件が成立する(true)間、繰り返し処理を行います。
while文と同様で条件式は、boolean値(true,false)を返す式ではないといけません。

do {
  処理文;
}while( 条件式 );
int num = 0;
do {
  System.out.println("num => " + num);
  num++;
}while(num < 5);
実行結果
num => 0
num => 1
num => 2
num => 3
num => 4

do whileの場合後でに条件判定が行われるので、条件に関係なくdo内に書いた処理が一度は実行されます。

for文

for文も条件判定がtrueである間、繰り返し処理が実行されます。

while文、do-while文では、()には条件式のみ記述していましたが、
for文の()内では、カウント変数の宣言、初期化、条件式、カウント変数の更新を行います。

for((初期化処理);(繰り返し条件); (繰り返し時処理);) {
  処理文;
}

下記のように記述するとこんにちはが10回繰り返し表示されます。

public class Lesson7 {
  public static void main(String[] args) {
    for (int i = 0; i < 10; i++) {
      System.out.println("こんにちは");
    }
  }
}

break文

実行中の繰り返し処理を中断して抜け出す時、繰り返し文の無限ループから抜け出す時に使用します。
switch文のcase内でも使用します。

for(int i = 0; ; i++) {
  if(i == 5) {
    break;
  }
  System.out.println("i => " + i);
}
System.out.println("for文の後の処理");
実行結果
i => 0
i => 1
i => 2
i => 3
i => 4
for文の後の処理

breakがない場合無限ループになってしまいますが、breakを記述しているのでiが5になった時点で繰り返しが終了します。

continue文

実行中の繰り返し処理を中断するのではなくその処理だけスキップして、条件式の判定を行わせ更に繰り返し処理を続ける時に使用します。
簡単に言うと指定した条件だけスキップしてほかの繰り返しは行うということみたいです。

for(int i = 0; i < 10; i++) {
  if((i % 3) == 0) {
    continue;
  }
  System.out.println("i => " + i);
}
System.out.println("for文の後の処理");
実行結果
i => 1
i => 2
i => 4
i => 5
i => 7
i => 8
for文の後の処理

if((i % 3) == 0)で3で割り切れる数字を指定しているのでcontinueでこれだけが表示されなくなります。

Discussion