for-eachループ Java

⚡ スマートサマリー

for-eachループ Java foreach は、カウンターやインデックスを使用せずに配列やリストを走査するために使用される、for ループの簡略化された形式です。このリソースでは、for-each の構文を説明し、従来の for ループと比較し、期待される出力を含む完全な動作例を示します。

  • 🔁 目的: for-eachループは配列またはリストのすべての要素を直接反復処理するため、コード量を削減できます。
  • 🧮 カウンターなし: 従来のforループとは異なり、for-eachループはインデックス、条件、またはインクリメントを必要としません。
  • 🧩 構文: コレクションと一致する型の一時変数を宣言し、次に反復処理するコレクションを宣言します。
  • <XNUMXxEXNUMX><XNUMXxEXNUMX><XNUMXxXNUMXA><XNUMXxXNUMX><XNUMXxXNUMXA>️️ 比較: この例では、カウンターベースのループとforeachループから同じ出力が得られることを示しています。
  • ⚠️ 制限: for-eachループはインデックスを提供しないため、基となる要素を容易に変更することはできません。

for-eachループ Java

Java 各配列

for-eachループは、配列を走査するために使用されるforループの別の形式です。for-eachループはコードを大幅に削減し、ループ内でインデックス(正確にはカウンター)を使用しません。

構文:

for (<DataType of array/List> <Temp variable name> : <Array/List to be iterated>) {
    System.out.println();
    // Any other operation can be done with this temp variable.
}

配列をループ/反復する Java

カウンターを使用せずに反復処理する文字列配列を使用する例を見てみましょう。次のように初期化された文字列配列 arrData を考えてみましょう。

String[] arrData = {"Alpha", "Beta", "Gamma", "Delta", "Sigma"};

サイズを見つけるなどの方法はご存知かもしれませんが、 配列 そして、従来の for ループ (カウンター、条件、インクリメント) を使用して配列の各要素を反復処理しますが、そのようなカウンターを使用しない、より最適化されたアプローチが必要です。

これは、「for」ループの従来のアプローチです。

for (int i = 0; i < arrData.length; i++) {
    System.out.println(arrData[i]);
}

カウンターの使用方法と、それが配列のインデックスとして使用される様子を確認できます。 Java 配列の各要素を反復処理する「for」ループを使用する方法を提供します。

以下は、先ほど宣言した配列のコードです。

for (String strTemp : arrData) {
    System.out.println(strTemp);
}

ループ間の違いがわかります。コードが大幅に削減されています。また、ループ内ではインデックス、つまりカウンターは使用されていません。for-each ループで宣言されたデータ型が、 配列リスト それを繰り返しているということ。

For Eachループの例

ここに、上記の解説をクラス全体で示している例があります。

class UsingForEach {
  public static void main(String[] args) {
    String[] arrData = {"Alpha", "Beta", "Gamma", "Delta", "Sigma"};
    //The conventional approach of using the for loop
    System.out.println("Using conventional For Loop:");
    for(int i=0; i< arrData.length; i++){
      System.out.println(arrData[i]);
    }
    System.out.println("\nUsing Foreach loop:");
    //The optimized method of using the for loop - also called the foreach loop
    for (String strTemp : arrData){
      System.out.println(strTemp);
    }
  }
}

配列を反復処理する Java

期待される出力:

Using conventional For Loop:
Alpha
Beta
Gamma
Delta
Sigma

Using Foreach loop:
Alpha
Beta
Gamma
Delta
Sigma

よくあるご質問

はい。AIアシスタントは、インデックスが不要なfor-eachループにインデックスベースのループをリファクタリングできます。ただし、位置や要素の変更にインデックスを使用するケースについては、引き続き確認する必要があります。

AI ツールは、インデックスが使用されていない場合、可読性のために foreach ループを提案することが多いが、ping 要素の位置や変更が重要なインデックス付きループ。どちらを選択するかは、具体的なタスクによって異なります。

従来のforループは、カウンタとインデックスを使用して反復処理を制御します。一方、for-eachループはカウンタを使用せずに各要素を直接反復処理するため、可読性は向上しますが、要素にアクセスするためのインデックスは提供されません。

ループ変数を変更しても、基となる配列要素は更新されません。なぜなら、ループ変数にはその値のコピーが保持されているからです。要素をその場で変更するには、インデックス付きの従来のforループを使用してください。