LoginSignup
0
0

More than 1 year has passed since last update.

【Java文法】ループ

Last updated at Posted at 2022-01-09

こんにちは、コイキングです。

本記事では'ループ(繰り返し処理)'について、説明したいと思います。


1. ループとは?

ループは条件式の結果が偽になるまで、ループ構文内のコードを繰り返して実行する構文です。
Javaでループ構文はfor文、拡張for文(for-each文)、while文、do-while文があります。

2. for文

for文は決まった回数分コードを繰り返して実行したい時に主に使うループ文です。

// for ([初期値]; [条件式]; [増減演算]) {
//     条件式の結果が偽になるまで実行するコード...
// }

for (int su1 = 0; su1 < 5; su1++) {
    System.out.println("for 1 ["+ su1 +"] 回目出力");
}

3. 拡張for文(for-each文)

拡張for文は配列やリストのようなデータを格納しているデータ構造から、格納されているデータを順次抜き出す場合、主に使います。

ArrayList<String> list = new ArrayList<String>();
list.add("String 1");
list.add("String 2");
list.add("String 3");
list.add("String 4");

// for ([データ型] [リストor 配列の要素] : [リストor 配列など..]) {
//    .....
// }
for (String str : list) {
    System.out.println("for-each 1 " + str);
}

int [] array = new int[] {10, 11, 12, 13, 14};
for (int su : array) {
    System.out.println("for-each 2 " + su);
}

4. while文

while文は最も簡単なループ文です。私の場合回数指定がない繰り返し処理が必要な場合使っています。

int su4 = 0;
// while (条件式) {
//   条件式の結果が偽になるまで実行するコード...
// }
while (su4 < 10) {
    su4++;
    System.out.println("while文 1 ["+ su4 +"] 番目出力");
}

boolean flg = true;
su4 = 0;
while (flg) {
    su4++;
    System.out.println("while文 2 ["+ su4 +"] 番目出力");
    if (su4 >= 5) {
        flg = false;
        System.out.println("while文 脱出~!");
    }
}

5. do-while文

do-while文は条件と関係なくwhile文内の内容を必ず1回は実行したい場合使います。

int su5 = 0;
// 条件を満たさなくても1回はループ文内のコードが実行されます。
do {
    System.out.println("do-while文 1 ["+ su5 +"] 番目出力");
} while(su5 < -1);

// 条件を満すと while文と同じ結果が出力されます。
do {
    su5++;
    System.out.println("do-while文 2 ["+ su5 +"] 番目出力");
} while(su5 < 5);

6. breakキーワード(ループ脱出)

breakキーワードは条件式を満たすとbreakキーワードを囲んでいる最も近いfor文から脱出させるキーワードです。

// 1番目 for文 
for (int i=0; i<5; i++) { 
    System.out.println("for文 i ["+ i +"] 番目出力");

    // 2番目 for文 
    for (int j=0; j<5; j++) {  
        if (j == 3) {
            System.out.println("jの値が 3のため for文 j 脱出");
            break; // 2番目 for文から脱出する
        }
        System.out.println("for文 j ["+ j +"] 番目出力");
    }

    if (i == 4) {
        System.out.println("iの値が 4のため for文 i 脱出");
        break; // 2番目 for文から脱出する
    }
}

7. continueキーワード(繰り返しスキップ)

continueキーワードは条件式を満たすとcontinueキーワード以後のループ文内部のコード実行をスキップし、continueキーワードを囲んでいる最も近い ループ文の最初に移動し、条件式の確認からループ文を再実行させる キーワードです。

int su6 = 0;
while (su6 < 10) {
    su6++;
    if (su6 % 2 != 0) {
        continue;
    }
    System.out.println("while文  ["+ su6 +"] 番目出力");   
}

8. labelキーワード

ラベルはループ構文に名前を付けることで、breakやcontinueキーワードとともに使うと
多種ループ文から特定のループ文を指定して脱出したり、スキップする事ができます。

label_1 : for (int i=0; i<5; i++) {
    System.out.println("for文 i ["+ i +"] 番目出力");

    label_2 : for (int j=0; j<5; j++) {
        if (j == 3) {
            System.out.println("jの値が 3のため for文 label_1 脱出");
            break label_1;
        } 
    }

}

※ 例示コード
https://github.com/leeyoungseung/algorithmBasic/blob/master/algorithm/src/basic/B_06_Loop.java

※ 韓国語のポストは以下のURLで確認できます。
https://koiking.tistory.com/78?category=1068655

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0