Java ループ構造 – for, while 及び do…while

シーケンス構造のプログラムステートメントは1回だけ実行できます。 同じ操作を複数回実行したい場合、ループ構造を使用する必要があります。

Javaには3つの主要なループ構造があります。

  • whileループ
  • do… whileループ
  • forループ

Java5では主に配列に使用される拡張forループが導入されました。

whileループ

whileは最も基本的なループですが、その構造は次のとおりです。

while(ブール式 ) {
  //ループコンテンツ
}

ブール式がtrueである限り、ループは実行を継続します。

実例

Test.java ファイルコード:

public class Test {
   public static void main(String args[]) {
      int x = 10;
      while( x < 20 ) {
         System.out.print("value of x : " + x );
         x++;
         System.out.print("\n");
      }
   }
}

上記の実例をコンパイルして実行した結果は次のとおりです。

value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19

do … while ループ

whileステートメントの場合、条件が満たされない場合、ループが実行できません。ただし、条件が満たされていなくても、少なくとも1回は実行する必要がある場合があります。

do … whileループはwhileループに似ていますが、do … whileループが少なくとも1回実行される点が異なります。

do {
//コードステートメント
}while(ブール式);

ヒント:ブール式はループ本体の後にあるため、ブール式が検出される前にステートメントブロックが実行されています。ブール式の値がtrueの場合、ブール式の値がfalseになるまでステートメントブロックが実行されます。

実例

Test.java ファイルコード:

public class Test {
   public static void main(String args[]){
      int x = 10;
 
      do{
         System.out.print("value of x : " + x );
         x++;
         System.out.print("\n");
      }while( x < 20 );
   }
}

上記の実例をコンパイルして実行した結果は次のとおりです。

value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19

forループ

すべてのループ構造はwhileまたはdo … whileで表すことができますが、Javaは別のステートメントforループを提供します。これより、一部のループ構造が簡単になります。

forループが実行される回数は、実行される前に決定されます。構文形式は次のとおりです。

for(初期化; ブール式; 更新) {
    //コードステートメント
}

forループについては説明したいのは次の通りです。

  • まず初期化を実行します。1つの型を宣言できますが、1つ以上のループ制御変数を初期化することも、空のステートメントにすることもできます。
  • 次に、ブール式の値を確認します。trueの場合、ループ本体が実行されます。falseの場合、ループは終了し、ループ本体の後ろにある残ったステートメントを実行します。
  • ループを1回に実行した後、ループ制御変数を更新します。
  • ブール式を再確認します。 上記のプログラムをループします。

実例

Test.java ファイルコード:

public class Test {
   public static void main(String args[]) {
 
      for(int x = 10; x < 20; x = x+1) {
         System.out.print("value of x : " + x );
         System.out.print("\n");
      }
   }
}

上記の実例をコンパイルして実行した結果は次のとおりです。

value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19

Java 強化されたforループ

Java5では、主に配列に使用される強化されたforループが導入されました。

Java 強化されたforループの構文は次の通りです。

for(宣言ステートメント : 式)
{
   //コードステートメント
}

宣言ステートメント:新しいローカル変数を宣言します。変数の型は配列要素の型と一致する必要があります。そのスコープはループステートメントブロックに制限されており、その値はこの時点での配列要素の値と同じです。

式:式は、アクセスする配列の名前、または配列を返すメソッドです。

実例

Test.java ファイルコード:

public class Test {
   public static void main(String args[]){
      int [] numbers = {10, 20, 30, 40, 50};
 
      for(int x : numbers ){
         System.out.print( x );
         System.out.print(",");
      }
      System.out.print("\n");
      String [] names ={"James", "Larry", "Tom", "Lacy"};
      for( String name : names ) {
         System.out.print( name );
         System.out.print(",");
      }
   }
}

上記の実例をコンパイルして実行した結果は次のとおりです。

10,20,30,40,50,
James,Larry,Tom,Lacy,

breakキーワード

Breakは、主にループステートメントまたはswitchステートメントで使用され、ステートメントブロック全体からジャンプします。

breakは最内層のループからジャンプして、ループの下のステートメントを実行し続けます。

構文

breakの使い方は非常に簡単で、ただループ構造のステートメントです。

break;

実例

Test.java ファイルコード:

public class Test {
   public static void main(String args[]) {
      int [] numbers = {10, 20, 30, 40, 50};
 
      for(int x : numbers ) {
         // xが30に等しい場合、ループからジャンプします
         if( x == 30 ) {
            break;
         }
         System.out.print( x );
         System.out.print("\n");
      }
   }
}

上記の実例をコンパイルして実行した結果は次のとおりです。

10
20

continueキーワード

continueは、すべてのループ制御構造に適用されます。 この機能はすぐに、プログラムをループの次の反復にジャンプさせることです。

forループでは、continueステートメントにより、プログラムはすぐにupdateステートメントにジャンプします。

whileまたはdo … whileループでは、プログラムはすぐにブール式の判定ステートメントにジャンプします。

構文

continueは、ループ本体の簡単なステートメントです。

continue;

実例

Test.java ファイルコード:

public class Test {
   public static void main(String args[]) {
      int [] numbers = {10, 20, 30, 40, 50};
 
      for(int x : numbers ) {
         if( x == 30 ) {
        continue;
         }
         System.out.print( x );
         System.out.print("\n");
      }
   }
}

上記の実例をコンパイルして実行した結果は次のとおりです。

10
20
40
50
Share

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です