JavaA2Z

KAB-studio > プログラミング > JavaA2Z > forステートメントとは

forステートメント

日本語 ~まで命令
英語 for statement
ふりがな ふぉーすてーとめんと
フリガナ フォーステートメント

解説

forを使用した繰り返し文。
ステートメントの一種。
 
予約語for」を用いたステートメント
ループ」をステートメントのひとつ。
for( 初期化; 評価; 更新 )ステートメント」という形式で記述する。
 
処理の順番は「初期化」→「評価式」→「ステートメント」→「更新」となる。
「更新」後、「評価式」の評価い、その結果がtrueの場合、再度「ステートメント」→「更新」が処理される。
その繰り返しによって、ループわれる。
 
初期化」には以下のいずれかを記述することができる。
 
ローカル変数宣言
・式ステートメント
 
宣言された変数スコープは、forステートメント内のみとなる。つまり「初期化」「評価式」「更新」「ステートメント」内でのみ使用可能である。
ステートメントは複数記述することができ、その場合には「,」を使用する。
省略することも可能。
  
評価式」には「式ステートメント」を記述することができる。
ただし、式ステートメントbooleanを返す式でなければならない。
省略することも可能。省略した場合、評価結果は常にtrueとなる。
 
「更新」には「式ステートメント」を記述することができる。
ステートメントは複数記述することができ、その場合には「,」を使用する。
省略することも可能。
 
ステートメント」にはステートメントを記述することができる。
通常はブロックを記述する。
ステートメントには「breakステートメント」「continueステートメント」を記述することができる。ラベルを指定しない場合、共にこのforステートメントがターゲットとなる。
 
forステートメントの使用方法については以下の項目も参照のこと。
 
for
breakbreakステートメント
continuecontinueステートメント

参考サイト

  • (参考サイトはありません)

(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // 最も単純なforステートメント。
        forint iF1 = 0; iF1 < 5; ++iF1 ) ;

        // 処理順は「初期化」→「評価式」→「ステートメント」
        // →「更新」→「評価式」→「ステートメント」→「更新」→...
        // →「ステートメント」→「更新」→「評価式」です。
        for
            ( System.out.println( "初期化 : " + count )
            ; evaluate()    // 評価式
            ; ++count, System.out.println( "更新 : " + count ) 
            ) 
                System.out.println( "ステートメント : " + count ) 
            ;
        // 初期化 : 0
        // 評価式 : 0
        // ステートメント : 0
        // 更新 : 1
        // 評価式 : 1
        // ステートメント : 1
        // 更新 : 2
        // 評価式 : 2
        // ステートメント : 2
        // 更新 : 3
        // 評価式 : 3

        // 以下が「初期化」の部分です。
        //   ←  ここ  →
        forint iF1 = 0; iF1 < 5; ++iF1 ) ;

        // 通常は、ローカル変数宣言を行い、同時に初期化します。
        forint iF1 = 0; iF1 < 5; ++iF1 )
        {
            // 宣言したローカル変数には、forステートメント内でのみ
            // アクセスできます。
            System.out.print( iF1 + ", " );
        }
        System.out.println();
        // 0, 1, 2, 3, 4, 

        // forステートメントの外では、「初期化」内で宣言した
        // 変数にアクセスできません。スコープの外だからです。
        // iF1 = 100;
        // コンパイルエラー:
        // iF1 は解決できません。

        // 式ステートメントを記述することもできます。
        // 複数記述する場合には「,」を使用します。
        int i;
        // 代入ステートメント
        //    ↓    プリインクリメントステートメント
        //    ↓       ↓
        for( i = 1, ++i; i < 5; ++i )
        {
            System.out.print( i + ", " );
        }
        System.out.println();
        // 2, 3, 4, 

        // それ以外、たとえばブロックは記述できません。
        // for( {}; ; ) ;
        // コンパイルエラー:
        // トークン "{" に構文エラーがあります。正しくは ";" です。

        // 必要なければ省略することもできます。
        i = 0;
        for( ; i < 5; ++i )
        {
            System.out.print( i + ", " );
        }
        System.out.println();
        // 0, 1, 2, 3, 4, 

        // 以下が「評価式」の部分です。
        //               ←ここ→
        forint iF1 = 0; iF1 < 5; ++iF1 ) ;

        // 通常は、「初期化」で宣言した変数が一定数以下か
        // 比較します。trueの間、繰り返します。

        // 「評価式」で「5未満」の場合true、とすることで
        // 5回繰り返します。
        forint iF1 = 0; iF1 < 5; ++iF1 )
        {
            System.out.print( iF1 + ", " );
        }
        System.out.println();
        // 0, 1, 2, 3, 4, 

        // 式ステートメントを記述できますが、boolean型を
        // 返さない式ステートメントは記述できません。
        // for( ; ++i; ) ;
        // コンパイルエラー:
        // 型の不一致: int から boolean には変換できません。

        // 必要なければ省略することもできます。
        // その場合、常にtrueとなります。
        forint iF1 = 0; ; ++iF1 )
        {
            if( iF1 >= 5 )
            {
                break;
            }
            System.out.print( iF1 + ", " );
        }
        System.out.println();
        // 0, 1, 2, 3, 4, 

        // 以下が「更新」の部分です。
        //                        ←ここ→
        forint iF1 = 0; iF1 < 5; ++iF1 ) ;

        // 通常は、「初期化」で宣言した変数を
        // インクリメントします。
        forint iF1 = 0; iF1 < 5; ++iF1 )
        {
            System.out.print( iF1 + ", " );
        }
        System.out.println();
        // 0, 1, 2, 3, 4, 

        // 「更新」には式ステートメントならなんでも記述できます。
        forint iF1 = 0; iF1 < 5; System.out.print( "(更新)" ) )
        {
            System.out.print( iF1 + ", " );
            ++iF1;
        }
        System.out.println();
        // 0, (更新)1, (更新)2, (更新)3, (更新)4, (更新)

        // 複数記述する場合には「,」を使用します。
        //                        プリインクリメントステートメント
        //                           ↓    メソッド呼び出しステートメント
        //                           ↓       ↓
        forint iF1 = 0; iF1 < 5; ++iF1, System.out.print( "(更新)" ) )
        {
            System.out.print( iF1 + ", " );
        }
        System.out.println();
        // 0, (更新)1, (更新)2, (更新)3, (更新)4, (更新)

        // 必要なければ省略することもできます。
        forint iF1 = 0; iF1 < 5; )
        {
            System.out.print( iF1 + ", " );
            ++iF1;
        }
        System.out.println();
        // 0, 1, 2, 3, 4, 

        // forの後ろの部分が「ステートメント」です。
        forint iF1 = 0; iF1 < 5; ++iF1 )/* ここから「ステートメント」→ */ System.out.print( iF1 + ", " ); // ←ここまで「ステートメント」。
        System.out.println();
        // 0, 1, 2, 3, 4, 

        // 通常は、「ステートメント」にはブロックを記述します。
        forint iF1 = 0; iF1 < 5; ++iF1 )/* ここから「ステートメント」→ */
        {
            System.out.print( iF1 + ", " );
            ++iF1;
        }// ←ここまで「ステートメント」。
        System.out.println();
        // 0, 1, 2, 3, 4, 

        // 「ステートメント」にはステートメントであれば何でも記述できます。    ↓代入ステートメントです。
        forint iF1 = 0; iF1 < 5; ++iF1 )/* ここから「ステートメント」→ */ i = 100; // ←ここまで「ステートメント」。
        System.out.println();

        // 記述できるステートメントはひとつです。
        // 以下のように「,」で複数記述することはできないため、通常は
        // ブロックを記述します。
        // for( int iF1 = 0; iF1 < 5; ++iF1 ) i = 100, ++i;
        // コンパイルエラー:
        // トークン "," に構文エラーがあります。正しくは ";" です。

        // 「ステートメント」を省略することはできません。
        // for( int iF1 = 0; iF1 < 5; ++iF1 )/* ここから「ステートメント」→ */ // ←ここまで「ステートメント」。
        // コンパイルエラー:
        // トークン "}" に構文エラーがあります。正しくは "{" です。
    }

    // 処理順をチェックするためのフィールド。
    static int count = 0;

    // 処理順をチェックするためのメソッド。
    private static boolean evaluate()
    {
        System.out.println( "評価式 : " + count );
        if( count == 3 )
        {
            // countが3になったらfalseを返します。
            return false;
        }
        return true;
    }
}
// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // 最も単純なforステートメント。
        for( int iF1 = 0; iF1 < 5; ++iF1 ) ;

        // 処理順は「初期化」→「評価式」→「ステートメント」
        // →「更新」→「評価式」→「ステートメント」→「更新」→...
        // →「ステートメント」→「更新」→「評価式」です。
        for
            ( System.out.println( "初期化 : " + count )
            ; evaluate()    // 評価式
            ; ++count, System.out.println( "更新 : " + count ) 
            ) 
                System.out.println( "ステートメント : " + count ) 
            ;
        // 初期化 : 0
        // 評価式 : 0
        // ステートメント : 0
        // 更新 : 1
        // 評価式 : 1
        // ステートメント : 1
        // 更新 : 2
        // 評価式 : 2
        // ステートメント : 2
        // 更新 : 3
        // 評価式 : 3

        // 以下が「初期化」の部分です。
        //   ←  ここ  →
        for( int iF1 = 0; iF1 < 5; ++iF1 ) ;

        // 通常は、ローカル変数宣言を行い、同時に初期化します。
        for( int iF1 = 0; iF1 < 5; ++iF1 )
        {
            // 宣言したローカル変数には、forステートメント内でのみ
            // アクセスできます。
            System.out.print( iF1 + ", " );
        }
        System.out.println();
        // 0, 1, 2, 3, 4, 

        // forステートメントの外では、「初期化」内で宣言した
        // 変数にアクセスできません。スコープの外だからです。
        // iF1 = 100;
        // コンパイルエラー:
        // iF1 は解決できません。

        // 式ステートメントを記述することもできます。
        // 複数記述する場合には「,」を使用します。
        int i;
        // 代入ステートメント
        //    ↓    プリインクリメントステートメント
        //    ↓       ↓
        for( i = 1, ++i; i < 5; ++i )
        {
            System.out.print( i + ", " );
        }
        System.out.println();
        // 2, 3, 4, 

        // それ以外、たとえばブロックは記述できません。
        // for( {}; ; ) ;
        // コンパイルエラー:
        // トークン "{" に構文エラーがあります。正しくは ";" です。

        // 必要なければ省略することもできます。
        i = 0;
        for( ; i < 5; ++i )
        {
            System.out.print( i + ", " );
        }
        System.out.println();
        // 0, 1, 2, 3, 4, 

        // 以下が「評価式」の部分です。
        //               ←ここ→
        for( int iF1 = 0; iF1 < 5; ++iF1 ) ;

        // 通常は、「初期化」で宣言した変数が一定数以下か
        // 比較します。trueの間、繰り返します。

        // 「評価式」で「5未満」の場合true、とすることで
        // 5回繰り返します。
        for( int iF1 = 0; iF1 < 5; ++iF1 )
        {
            System.out.print( iF1 + ", " );
        }
        System.out.println();
        // 0, 1, 2, 3, 4, 

        // 式ステートメントを記述できますが、boolean型を
        // 返さない式ステートメントは記述できません。
        // for( ; ++i; ) ;
        // コンパイルエラー:
        // 型の不一致: int から boolean には変換できません。

        // 必要なければ省略することもできます。
        // その場合、常にtrueとなります。
        for( int iF1 = 0; ; ++iF1 )
        {
            if( iF1 >= 5 )
            {
                break;
            }
            System.out.print( iF1 + ", " );
        }
        System.out.println();
        // 0, 1, 2, 3, 4, 

        // 以下が「更新」の部分です。
        //                        ←ここ→
        for( int iF1 = 0; iF1 < 5; ++iF1 ) ;

        // 通常は、「初期化」で宣言した変数を
        // インクリメントします。
        for( int iF1 = 0; iF1 < 5; ++iF1 )
        {
            System.out.print( iF1 + ", " );
        }
        System.out.println();
        // 0, 1, 2, 3, 4, 

        // 「更新」には式ステートメントならなんでも記述できます。
        for( int iF1 = 0; iF1 < 5; System.out.print( "(更新)" ) )
        {
            System.out.print( iF1 + ", " );
            ++iF1;
        }
        System.out.println();
        // 0, (更新)1, (更新)2, (更新)3, (更新)4, (更新)

        // 複数記述する場合には「,」を使用します。
        //                        プリインクリメントステートメント
        //                           ↓    メソッド呼び出しステートメント
        //                           ↓       ↓
        for( int iF1 = 0; iF1 < 5; ++iF1, System.out.print( "(更新)" ) )
        {
            System.out.print( iF1 + ", " );
        }
        System.out.println();
        // 0, (更新)1, (更新)2, (更新)3, (更新)4, (更新)

        // 必要なければ省略することもできます。
        for( int iF1 = 0; iF1 < 5; )
        {
            System.out.print( iF1 + ", " );
            ++iF1;
        }
        System.out.println();
        // 0, 1, 2, 3, 4, 

        // forの後ろの部分が「ステートメント」です。
        for( int iF1 = 0; iF1 < 5; ++iF1 )/* ここから「ステートメント」→ */ System.out.print( iF1 + ", " ); // ←ここまで「ステートメント」。
        System.out.println();
        // 0, 1, 2, 3, 4, 

        // 通常は、「ステートメント」にはブロックを記述します。
        for( int iF1 = 0; iF1 < 5; ++iF1 )/* ここから「ステートメント」→ */
        {
            System.out.print( iF1 + ", " );
            ++iF1;
        }// ←ここまで「ステートメント」。
        System.out.println();
        // 0, 1, 2, 3, 4, 

        // 「ステートメント」にはステートメントであれば何でも記述できます。    ↓代入ステートメントです。
        for( int iF1 = 0; iF1 < 5; ++iF1 )/* ここから「ステートメント」→ */ i = 100; // ←ここまで「ステートメント」。
        System.out.println();

        // 記述できるステートメントはひとつです。
        // 以下のように「,」で複数記述することはできないため、通常は
        // ブロックを記述します。
        // for( int iF1 = 0; iF1 < 5; ++iF1 ) i = 100, ++i;
        // コンパイルエラー:
        // トークン "," に構文エラーがあります。正しくは ";" です。

        // 「ステートメント」を省略することはできません。
        // for( int iF1 = 0; iF1 < 5; ++iF1 )/* ここから「ステートメント」→ */ // ←ここまで「ステートメント」。
        // コンパイルエラー:
        // トークン "}" に構文エラーがあります。正しくは "{" です。
    }

    // 処理順をチェックするためのフィールド。
    static int count = 0;

    // 処理順をチェックするためのメソッド。
    private static boolean evaluate()
    {
        System.out.println( "評価式 : " + count );
        if( count == 3 )
        {
            // countが3になったらfalseを返します。
            return false;
        }
        return true;
    }
}

この単語を含むページ

「みだし」に含まれているページ

「サンプルプログラムとか」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2006/02/22
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。