For loopとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > For loopの意味・解説 

for文

(For loop から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/11/26 23:37 UTC 版)

for文(フォーぶん)はプログラミング言語において条件の間だけ与えられたの実行を繰り返すというループを記述するための文である。forループは、whileループと違って、ループに入る前の初期化(通常カウンタ変数の初期化を行なう)を含む点で異なる。

また言語によってはforeach文をfor … in … のように書くことがあり、このときのfor文はイテレータの繰り返し処理をする文になる。

文法

C 系

awk, C, C++, C#, D, Java, JavaScript, Perlなどでは基本的な構文は以下のようになる。

for(初期化; ループの継続条件; カウンタ変数の更新)
    

文はどのような文でもよいが、次のような文がよく使われる。

for(; ; )
    ;              /* 単文 */
for(; ; ){
    0個以上の文       /* 複文 */
}
for(; ; )
    for(; ; )     /* 入れ子になったfor文 */
        ;

このループは次のような手順で実行される。

  1. 初期化を実行する。
  2. 条件を評価する。条件が偽ならば、ループを終了する。
  3. 真文を実行する。
  4. カウンタ変数の更新を実行する。
  5. 条件の評価に戻る。

条件がはじめから偽の場合は、真文は一度も実行されない。また、初期化・条件・カウンタ変数の更新の三つは、それぞれ省略することが出来る。条件を省略した場合、条件は常に真であるとみなされ、ループから強制的に抜け出る構文(break, return など)がなければ無限ループとなる。

例えば、初期化とカウンタ変数の更新を省略し、条件のみを記述する場合、次のようになる。

for (; x < 100;)
    ……

初期化などを省略した場合でも、丸括弧内で区切りとして使われる ; を省略することはできない。

C99、C++、C#、Java では初期化は式に限られず、ローカル変数を宣言できる。for文は暗黙のブロックを作る、つまり

{
    for(; ; )
        ……
}

と等価とみなされるため、宣言された変数のスコープはfor文内(for(…; …; …)を含む)に限られる。さらにC99およびC++に関しては、外側のスコープで定義した変数と同じ名前の変数を内側のスコープで定義することができる。たとえば次のコードでは、それぞれの i は別のブロックにあるため、正常なコードとなる。

int i = 1;
for(int i = 0; i < 10; i++)
    ……
for(int i = 0; i < 10; i++)
    for(int i = 0; i < 10; i++)
        ……
/* ここでの i は 1 */

ただしANSI C++規格が制定される前(AT&T C++ 2.0まで)のC++では暗黙のブロックはなかったため、このコードでは同じブロック内で i が複数回宣言されておりコンパイルエラーとなった。C#およびJavaでは、外側のスコープで定義した変数と同じ名前の変数を内側のスコープで定義することができないため、コンパイルエラーとなる。

初期化(式の場合)・ループの継続条件・カウンタ変数の更新は、それぞれ1つの式のみが許される。ただしコンマ演算子を使って、実質的に2つの演算を1つの式で表すことができる。初期化で宣言をする場合も、1つの宣言文のみが許される。したがって、同じの場合に限り複数変数を宣言できる。

for (int i = 0, j = 0; i < 10; i++, j++)
    ……

例文

int x;
for (x = 0; x < 100; x++) {
  printf("x は %d です。\n", x);
}

これを実行すると、次のような出力結果が得られる。

x は 0 です。
x は 1 です。

…………

x は 98 です。
x は 99 です。

はじめ変数xの値は0であり、真文が1回実行されるたびに1が加えられる。真文が100回実行されるとxの値は100になり条件が成り立たなくなるため、このときこのループは終了する。

ループを終了するには、ループの条件を偽にするほかに真文においてbreak文を使う方法もある。ループの条件が常に真であり、真文にbreak文が含まれていない場合(またはbreak文が実行されない場合)、ループは無限ループとなる。また、真文が複数の文からなる場合、continue文を使うことで真文の実行を中止し、カウンタ変数の更新から処理を再開することができる。

C言語のwhile文は、初期化とカウンタ変数の更新を省略したfor文として書き換えることができる。したがって、C言語におけるfor文はwhile文を一般化したものといえる。

Pascal

Pascalでの構文は以下のようになる(BASICの基本的な構文も同様である)。

for 変数 := 初期値 to 終値 do
  

このループは次のような手順で実行される。

  1. カウンタ変数に初期値を代入する。
  2. カウンタ変数の値が終値よりも大きいならば、ループを終了する。(条件の評価)
  3. 文を実行する。
  4. カウンタ変数の値を次の値(Succ関数の結果。整数型変数なら1を加えることになる)にし、条件の評価に戻る。

C言語などと異なり、初期化とカウンタ変数の更新がそれぞれ、初期値の代入と1を加える(または減らす)ことに限定され、さらにループ継続条件が「カウンタ変数が終値より大きいか否か」だけに限定されている。そのため、Cのfor文よりも特殊化されたものと考えることができる。

例文

for x := 0 to 99 do
  writeln('x は ', x, ' です。')

実行結果はCおよびそれに類する言語の場合で示したのと同様である。

BASIC

FOR 変数 = 初期値 TO 終値 STEP 加算値
 文
NEXT 変数

このループは次のような手順で実行される。

  1. カウンタ変数に初期値を代入する。
  2. カウンタ変数の値が、初期値が終値よりも小さい場合大きいならば、また、初期値が終値よりも大きい場合小さいならば、ループを終了する。(条件の評価)
  3. 文を実行する。
  4. カウンタ変数の値に加算値を足し、条件の評価に戻る。

また、以下の条件の場合には省略可能な部分がある。

  • "STEP 加算値" が省略された場合、加算値は1とみなされる。

例文

FOR x = 0 TO 99 STEP 1
 PRINT "x は " & x & " です。"
NEXT x

実行結果はCおよびそれに類する言語の場合で示したのと同様である。

関連項目


「For loop」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

For loopのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



For loopのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのfor文 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2025 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2025 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2025 GRAS Group, Inc.RSS