Javaループの手引き

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]にあります。

前の投稿:Javaにおける優先順位ベースのジョブスケジューリング
次の投稿:JMXの基本的な紹介