1

この記事の目次



1.  for文とは


for文は同じ処理を指定した回数だけ繰り返し実行する構文です。

for文は次のように記述します:

for(初期化 ; 繰り返し条件 ; 更新処理){

    ブロック//ここに、条件が成り立つ時に繰り返したい処理

}
例題 : for文を利用して、「こんにちは」の表示を10回繰り返す

package helloworld;

public class HelloWorld {
     
    public static void main(String[] args) {

        int i;
        
        for (i=0;i<10;i++){
            
            System.out.println("こんにちは");
        
        }
                
    }
  
}

説明 : for文の文法は少し複雑ですが、細かい解説は後で行うことにして、まずはfor文の基本形をみてみましょう。

for(i = 0; i < 10 ; i++){ : ここで、最初にi=0で、i<10を満たす間、iを1つずつ増やしながら、{}ブロック内の命令を実行します。つまり、iが0から9に上がるまで、ブロック内の命令を実行しろという構文です。

2.  for文の各部の意味


for文に続く括弧の中は、上の例題のように、セミコロンによって、区切られた3つの部分(①初期値、②繰り返し条件、③更新処理)から構成されています。これからそれぞれの部分について詳しく見てみましょう。

 ●  初期値

  • forに夜繰り返しがはじまるにあたり最初に1回だけ実行される文です
  • ここでは「ループの周目を示す変数」を定義します。このような変数はループ変数と言います。
  • 例:

  • for(int i = 0 ; ... ; ...){:上の例題は変数iをfor文の外に宣言してしまったので、ここで宣言しなくてもいいですが、普通はループ変数はループだけに使いたいため、int i = 0新しく宣言しましょう。
  • for( i = 0 ; ... ; ...){:もし、変数を無駄に増やしたくない、計算量を節約したければ、for文外の変数を使用し続けてもいいですが、プログラムの全体に影響を及ぼさないようにしましょう。
  •  ●  繰り返し条件

  • ブロック実行する前に評価され、このループを継続するか否か判定する条件です。
  • 評価結果はtrueの間は{}ブロック内の命令を繰り返し実行します。
  • 例 : for(... ; i<10 ; ...){i<10がtrueの間に、{}ブロック内の命令を繰り返し実行します。

     ●  更新処理

  • for文内のプロックを最後まで処理して、 } まで到着した直後に自動的に実行される文です。
  • 例:

  • for(... ;...;i++){:ループ変数iを1だけ増やして、繰り返し条件がどう判定するかの段階に進みます。
  • for(... ;...;i += 2){:ループ変数iを2だけ増やして、繰り返し条件がどう判定するかの段階に進みます。
  • 3.  ループを制御する方法


     ●  BREAK文でループを抜ける方法

    for文の中でbreak文が実行されると、for文の残りの処理を終了し、ループから抜けます。

    記事の先頭の例題から改造された次のプログラムで確認しましょう。

    package helloworld;
    
    public class HelloWorld {
         
        public static void main(String[] args) {
    
            int i;
            
            for (i=0;i<10;i++){
                
                if(i == 3){
                    break;
                }
                System.out.println("こんにちは");
            
            }
                    
        }
      
    }

    実行結果 : 元々「こんにちは」を10回表示するプログラムから、i =3の時にbreak文を実行するという文を追加したことで、i = 0,1,2の時だけにSystem.out.println("こんにちは")を実行して、結局、「こんにちは」は3回しか表示していませんでした。

     ●  continue文で処理をスキップする方法

    「continue」文を実行すると、ループ内のそれ以降の処理は行わずに,ループの最初の処理から再び実行されます。(1つのループをスキップする)

    記事の先頭の例題から改造された次のプログラムで確認しましょう。

    package helloworld;
    
    public class HelloWorld {
         
        public static void main(String[] args) {
    
            int i;
            
            for (i=0;i<10;i++){
                
                if(i >= 3 && i<=8){
                    continue;
                }
                System.out.println("こんにちは");
            
            }
                    
        }
      
    }

    実行結果 : 元々「こんにちは」を10回表示するプログラムから、i >= 3 && i<=8の時にcontinue文を実行するという文を追加したことで、i = 0,1,2,9の時だけにSystem.out.println("こんにちは")を実行して、結局、「こんにちは」は4回しか表示していませんでした。

    注意 : continue文は最も内側の1つのループをスキップするので、多重ループの場合は注意してください。

     ●  continue文(ベル付き)で多重ループをスキップする方法

    ラベル: for (初期化1 ; 繰り返し条件1 ; 更新処理1) {
        for (初期化2 ; 繰り返し条件2 ; 更新処理2) {
            処理
            continue ラベル;
        }
    }
    説明 : continue文は最も内側の1つのループをスキップしますが、ラベル付きcontinue文は、処理をスキップした後にラベルを設定したループの処理を続けます。

    4.  まとめ


    今回は繰り返しfor文の構造と使い方や、break文とcontinue文によるループ制御などを説明しました。

    for文はJAVAの基本ですので、覚えておいてくださいね。演習問題もやり忘れずに!

    5.  演習問題


    広告