for文とは?使い方や記述例を分かりやすく解説

プログラミング言語を学ぶ際、基本的な構文の一つとしてfor文が挙げられます。ほとんどのプログラミング言語で使用されているfor文について理解することで、その利便性が分かってくるでしょう。この記事では、for文の基本的な構文から実際の使用例まで、初心者にも分かりやすく解説します。

for文とは?

for文は、特定の条件が満たされるまで繰り返し処理を行うループ構文です。これにより同じコードを何度も書く必要がなく、効率的に処理を記述できます。

各プログラム言語での記述例をご紹介します。

Javascriptでの記述例

下記のコードは、0以上5未満の整数を1つずつ出力します。

for (let i = 0; i < 5; i++) {
    console.log(i);
}

forの後に続く()の中に、;(セミコロン)で区切った3つの引数が記述されています。その後に、ブロックでループ処理を記述します。

for文の3つの引数

let i = 0

ループ処理を始める前に1度だけ行われる初期化文です。
変数iを0で初期化しています。ここで初期化する変数はカウンタ変数と呼ばれ、慣例的にiが使われることが多いです。

i < 5

ループ処理を行う条件式です。1ループが始まる度に条件判定して、真であればループ処理を行います。

i++

ループ処理後の実行文です。1ループが終わる度に実行され、カウンタ変数を増加または更新します。
i++はiを1増加させる、という処理です。

処理

console.log(i);

処理内容です。

console.log関数は指定した引数を出力します。

大まかな流れは以下の図のようになります。

  1. iを0で初期化
  2. iが5未満か判定
    • True :iを出力、iを1増加させる
    • False:ループを終了する
  3. ②に戻る

Pythonでの記述例

先ほどと同様に、0以上5未満の整数を1つずつ出力します。

for i in range(0, 5) :
    print(i)

i in range(0, 5)

i(カウンタ変数)を0で始めて、1ずつ増分して5になるまでループ処理を行うという文です。

print(i)

処理内容です。print関数は指定された引数を出力します。

break

ループ処理の途中でループを終了させたいときは、break文を使います。

Javascriptでの例

const numbersList = [1,3,5,0,9];
for (let i = 0; i < 5; i++) {
    if (numbersList[i] === 0) {
        break;
    } else {
        console.log(numbersList[i]);
    }
}

このコードでは数値が複数入ったnumberList配列を定義して、配列の先頭から要素を出力しています。numberList[0], numberList[1], …といった順番でループ処理を行います。

numberListの要素が0だった場合、break文によってループ処理を終了させます。

出力は以下のようになります。

1
3
5

0が現れた時点で処理が終了しているのが分かります。

他の言語の例は以下です。

Pythonでの例

numbersList =  [1,3,5,0,9]
for n in numbersList:
    if(n == 0):
        break
    else:
        print(n)

PHPでの例

$numbersList = [1,3,5,0,9];
for ($i = 0; $i < 5; $i++) {
    if ($numbersList[$i] === 0) {
        break;
    } else {
        echo $numbersList[$i] . PHP_EOL;
    }
}

Javaでの例

List<Integer> numbersList = Arrays.asList(1,3,5,0,9);
for (int i = 0; i < 5; i++) {
    if (numbersList.get(i) == 0) {
        break;
    } else {
        System.out.println(numbersList.get(i));
    }
}

C言語での例

int numbersList[] = {1,3,5,0,9};
for (int i = 0; i < 5; i++) {
    if (numbersList[i] == 0) {
        break;
    } else {
        printf("%d\n", numbersList[i]);
    }
}

continue

ループ処理をブロックの途中で終わらせて、強制的に次のループに進めるときはcontinue文を使います。

const numberList = [1,3,5,0,9];
for (let i = 0; i < 5; i++) {
    if (numbersList[i]  === 0) {
        continue;
    } else {
        console.log(numbersList[i]);
    }
}

numberListの要素が0だった場合、continue文によって次のループに進ませます。

出力は以下のようになります。

1
3
5
9

0だけ出力が飛ばされているのが分かります。

他の言語の例は以下です。

Pythonでの例

numbersList =  [1,3,5,0,9]
for n in numbersList:
    if(n == 0):
        continue
    else:
        print(n)

PHPでの例

$numbersList = [1,3,5,0,9];
for ($i = 0; $i < 5; $i++) {
    if ($numbersList[$i] === 0) {
        continue;
    } else {
        echo $numbersList[$i] . PHP_EOL;
    }
}

Javaでの例

List<Integer> numbersList = Arrays.asList(1,3,5,0,9);
for (int i = 0; i < 5; i++) {
    if (numbersList.get(i) == 0) {
        continue;
    } else {
        System.out.println(numbersList.get(i));
    }
}

C言語での例

int numbersList[] = {1,3,5,0,9};
for (int i = 0; i < 5; i++) {
    if (numbersList[i] == 0) {
        continue;
    } else {
        printf("%d\n", numbersList[i]);
    }
}

for文は効率的なコーディングに不可欠

for文を使うと、繰り返し処理を簡潔に書ける上に、改修する際に変更範囲を狭めることができます。プログラムで頻繁に目にする機会があるので、是非身につけておきたい基本の構文の1つです。

コメント