第6回|C言語のfor文と繰り返し処理を学ぶ:同じ処理をまとめて実行する

* 当サイトでは、コンテンツの一部に広告を掲載しています。

System Note $ cat /proc/ai-disclosure

本記事の構成および論理分析にはAI(人工知能)を使用しています。情報の正確性は、システム管理者(UNIXユーザー)による手動検証済みです。

第6回|C言語のfor文と繰り返し処理を学ぶ:同じ処理をまとめて実行する

はじめてのC言語 | 第6回

目次

はじめに

前回は、if 文を使って条件によって処理を分ける方法を学びました。
今回は、同じ処理を繰り返し実行する for 文を扱います。

この回の目的は次の4点です。

  • for 文の基本形を理解する
  • 回数を指定した繰り返しを書けるようにする
  • カウンタ変数の役割を知る
  • if 文と組み合わせた基本的な使い方を確認する

繰り返し処理とは何か

繰り返し処理とは、同じような処理を何度も実行することです。

たとえば、次のような場面で使います。

  • 1から5まで順に表示する
  • 同じメッセージを10回表示する
  • 条件を満たす値だけを表示する

C言語では、こうした処理を for 文で書けます。

for 文の基本形

書式

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

それぞれの意味は次のとおりです。

  • 初期化: 最初に1回だけ実行する
  • 条件式: 真の間は繰り返す
  • 更新: 1回ごとの処理のあとで実行する

最初のサンプルコード

ソースコード

for_sample.c という名前で保存します。

#include <stdio.h>

int main(void) {
    int i;

    for (i = 1; i <= 5; i++) {
        printf("%d\n", i);
    }

    return 0;
}

実行手順

1. 作業ディレクトリに移動する

cd ~/Desktop

2. コンパイルする

clang for_sample.c -o for_sample

3. 実行する

./for_sample

実行結果:

1
2
3
4
5

コードの読み方

int i;

繰り返しの回数を管理するための変数を宣言しています。
このような変数をカウンタ変数と呼びます。

for (i = 1; i <= 5; i++)

この部分が for 文の中心です。

  • i = 1 : 最初に i を 1 にする
  • i <= 5 : i が 5 以下の間、繰り返す
  • i++ : 1回の処理が終わるごとに i を 1 増やす

printf(“%d\n”, i);

現在の i の値を表示しています。

i++ とは何か

i++ は、i の値を 1 増やす書き方です。

i++;

これは次とほぼ同じ意味です。

i = i + 1;

for 文では、カウンタを1ずつ増やす目的でよく使います。

0から始める例

C言語では、0から数え始める書き方もよく使います。

#include <stdio.h>

int main(void) {
    int i;

    for (i = 0; i < 5; i++) {
        printf("%d\n", i);
    }

    return 0;
}

実行結果:

0
1
2
3
4

この場合、i < 5 なので 5 は表示されません。

回数だけ繰り返す例

同じ文字列を3回表示する例です。

#include <stdio.h>

int main(void) {
    int i;

    for (i = 0; i < 3; i++) {
        printf("Hello\n");
    }

    return 0;
}

実行結果:

Hello
Hello
Hello

for 文と if 文を組み合わせる

繰り返しの中で条件分岐も使えます。

偶数だけ表示する例

#include <stdio.h>

int main(void) {
    int i;

    for (i = 1; i <= 10; i++) {
        if (i % 2 == 0) {
            printf("%d\n", i);
        }
    }

    return 0;
}

実行結果:

2
4
6
8
10

処理の流れを順に確認する

次のコードを例にします。

for (i = 1; i <= 3; i++) {
    printf("%d\n", i);
}

実行の流れは次のとおりです。

  1. i = 1 を実行する
  2. i <= 3 を判定する
  3. 真なので printf を実行する
  4. i++ を実行する
  5. 再び i <= 3 を判定する
  6. 条件が偽になるまで繰り返す

初心者がつまずきやすい点

= と == を混同しない

for 文の条件で比較を書くときは == を使います。
ただし、初期化では代入なので = を使います。

例:

for (i = 0; i < 5; i++) {
    printf("%d\n", i);
}
  • i = 0 は代入
  • i < 5 は比較

i <= 5 と i < 5 の違い

この違いで繰り返し回数が変わります。

for (i = 1; i <= 5; i++)

これは 1 から 5 まで表示します。

for (i = 1; i < 5; i++)

これは 1 から 4 まで表示します。

波かっこを省略しない

1行だけでも波かっこは書く方が安全です。

for (i = 0; i < 3; i++) {
    printf("Hello\n");
}

よくあるエラー

use of undeclared identifier ‘i’

原因: i を宣言していません。
対処: 先に int i; を書きます。

expected ‘;’

原因: printf などの行末に ; がありません。

無限ループになる

更新式を書き忘れると、条件が変わらず繰り返しが止まらないことがあります。

誤った例:

for (i = 1; i <= 5; ) {
    printf("%d\n", i);
}

この場合、i が増えないため、条件がずっと真のままになります。

練習用コード

次のコードを書いて、1 から 10 まで表示してください。

#include <stdio.h>

int main(void) {
    int i;

    for (i = 1; i <= 10; i++) {
        printf("%d\n", i);
    }

    return 0;
}

偶数だけ表示する練習

#include <stdio.h>

int main(void) {
    int i;

    for (i = 1; i <= 10; i++) {
        if (i % 2 == 0) {
            printf("%d\n", i);
        }
    }

    return 0;
}

まとめ

今回のポイントは次のとおりです。

  • for 文を使うと、回数を決めた繰り返し処理を書ける
  • for (初期化; 条件式; 更新) の形で書く
  • i++ は値を1増やす操作である
  • if 文と組み合わせると、条件付きの繰り返し処理ができる

この回では、C言語の for 文を使った繰り返し処理を確認しました。
繰り返しは、条件分岐と並んで基本中の基本です。

次回予告

次回は、while 文を使った繰り返し処理に進みます。
「条件が成り立つ間、処理を続ける」という考え方を、for 文との違いを意識しながら、やさしく見ていきましょう。

復習してみよう

復習したい方は、こちらもあわせてご覧ください。

用途ごとに選ぶ C言語のおすすめ本

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe マスター

Macintosh Color Classicから始まった旅は、長いWindows時代を経て、Windows10のサポート終了をきっかけにUNIXの世界へ戻ってきました。UNIX Cafeでは、UNIX・Linux・そしてMacな世界を、むずかしい言葉を使わず、物語のように書いています。プログラミングは、アイデアをコンピューターに伝えるための言葉です。簡単な単語と文法を覚えれば、誰でもコマンドを使えます。ぜひ一度、やさしいプログラミングの世界をのぞいてみてください。

Created by UNIX Cafe

目次