1概要

この記事では、ループを使用して、1つのステートメントまたは一連のステートメントを繰り返し実行するという、Java言語の中核的な側面について説明します。


2ループ入門

プログラミング言語では、


ループは、制御する

Boolean-expression



false




__.

__と評価されるまで、一連の命令の実行を容易にする機能です。

Javaは、プログラミングのニーズに合わせてさまざまな種類のループを提供します。各ループには独自の目的と役立つ適切な使用例があります。

Javaで見つけられるループの種類は次のとおりです。

  • 単純な

    for

    ループ

  • for-eachループを強化


  • While

    ループ


  • Do-While

    ループ


3単純な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

ステートメントで使用される

initialization



Boolean-expression、

、および

step



オプション

です。これが

無限

forループの例です。

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


3.1. ラベル付き

for

ループ

ラベル付きの

for

ループを付けることもできます。 forループを入れ子にして、特定のforループから

break

/

continue

を実行できるようにすると便利です。

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);
    }
}


4強化された

for

ループ

Java 5以降、私たちは

enhanced for


which

と呼ばれる2番目の種類の

for

ループを持っています。これは配列またはコレクションのすべての要素を繰り返し処理することをより簡単にします。


enford for

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

for(Type item : items)
  statement;

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

  1. 現在繰り返し処理している要素のハンドル

  2. 繰り返しているソース配列/コレクション

したがって、次のように言うことができます。**

itemsの各要素について、



item

変数に割り当て、ループの本体を実行します。

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

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

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


List <String> list

オブジェクトが与えられると、それを繰り返すことができます。

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


Set <String> set

についても同様に繰り返すことができます。

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

そして、

Map <String、Integer> map

が与えられると、それを繰り返すことができます。

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


4.1.

Iterable.forEach()


Java 8以降、for-eachループを少し異なる方法で活用できます。

Iterable

インターフェースには、実行したいアクションを表すラムダ式を受け入れる専用の

forEach()

メソッドがあります。

内部的には、単にジョブを標準ループに委任します。

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));


5

While

ループ


while

ループは、Javaの最も基本的なループステートメントです。制御する

ブール式

が真の間は、ステートメントまたはステートメントのブロックを繰り返します。


while

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

while (Boolean-expression)
    statement;

  • ループの

    Boolean-expression

    は、ループの最初の反復** の前に評価されます。つまり、条件がfalseと評価された場合、ループは一度も実行されない可能性があります。

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

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


6. Do-Whileループ

do-whileループはwhileループと同じように動作しますが、** 最初の条件評価はループの最初の反復の後に行われるという点が異なります。

do {
    statement;
} while (Boolean-expression);

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

int i = 0;
do {
    System.out.println("Do-While loop: i = " + i++);
} while (i < 5);


7. 結論

このクイックチュートリアルでは、Javaプログラミング言語で利用可能なさまざまな種類のループを示しました。

また、適切なユースケースを考えると、各ループが特定の目的にどのように役立つかを確認しました。与えられたループの実装に適した状況について説明しました。

いつものように、例はhttps://github.com/eugenp/tutorials/tree/master/core-java-lang-syntax[over on GitHub]にあります。