1. 概要

この記事では、Java言語のコアな側面、つまりforループを使用してステートメントまたはステートメントのグループを繰り返し実行する方法について説明します。

2. シンプルなforループ

for ループは、ループカウンターをインクリメントして評価することにより、特定の操作を繰り返すことができる制御構造です。

最初の反復の前に、ループカウンターが初期化され、次に条件評価が実行され、続いてステップ定義(通常は単純なインクリメント)が実行されます。

forループの構文は次のとおりです。

for (initialization; Boolean-expression; step) 
  statement;

簡単な例で見てみましょう。

for (int i = 0; i < 5; i++) {
    System.out.println("Simple for loop: i = " + i);
}

forステートメントで使用される初期化、ブール式、およびステップはオプションです。 infiniteforループの例を次に示します。

for ( ; ; ) {
    // Infinite for loop
}

2.1. forループのラベル

ループのにラベルを付けることもできます。 特定のforループからブレーク/続行できるようにforループをネストしていると便利です。

aa: for (int i = 1; i <= 3; i++) {
    if (i == 1)
      continue;
    bb: for (int j = 1; j <= 3; j++) {
        if (i == 2 && j == 2) {
            break aa;
        }
        System.out.println(i + " " + j);
    }
}

3. 強化されたforループ

Java 5以降、 Enhanced forと呼ばれる第2の種類のforループがあります。これにより、により、配列またはコレクション内のすべての要素の反復が容易になります。

拡張forループの構文は次のとおりです。

for(Type item : items)
  statement;

このループは標準のforループと比較して単純化されているため、ループを初期化するときに宣言する必要があるのは2つだけです。

  1. 現在反復処理している要素のハンドル
  2. 反復しているソース配列/コレクション

したがって、次のように言うことができます。アイテム内の要素ごとに、要素をアイテム変数に割り当て、ループの本体を実行します

簡単な例を見てみましょう。

int[] intArr = { 0,1,2,3,4 }; 
for (int num : intArr) {
    System.out.println("Enhanced for-each loop: i = " + num);
}

これを使用して、さまざまなJavaデータ構造を反復処理できます。

与えられたリストリストオブジェクト–それを繰り返すことができます:

for (String item : list) {
    System.out.println(item);
}

同様に、 設定設定

for (String item : set) {
    System.out.println(item);
}

そして、与えられた地図地図それを繰り返すこともできます:

for (Entry<String, Integer> entry : map.entrySet()) {
    System.out.println(
      "Key: " + entry.getKey() + 
      " - " + 
      "Value: " + entry.getValue());
}

3.1. Iterable.forEach()

Java 8以降、for-eachループをわずかに異なる方法で活用できます。 これで、実行するアクションを表すラムダ式を受け入れる専用のforEach()メソッドがIterableインターフェイスにあります

内部的には、ジョブを標準ループに委任するだけです。

default void forEach(Consumer<? super T> action) {
    Objects.requireNonNull(action);
    for (T t : this) {
        action.accept(t);
    }
}

例を見てみましょう:

List<String> names = new ArrayList<>();
names.add("Larry");
names.add("Steve");
names.add("James");
names.add("Conan");
names.add("Ellen");

names.forEach(name -> System.out.println(name));

4. 結論

このクイックチュートリアルでは、Javaのforループについて説明しました。

いつものように、例はGitHubにあります。