こんにちは、コイキングです。
本記事では'ループ(繰り返し処理)'について、説明したいと思います。
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