広告スペース

第14回 繰り返し(for/while)

C言語のfor文とwhile文の使い方。ループ処理を図解で解説。

for文 ― 決まった回数の繰り返し

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

ループ回数ビジュアライザ

現在の i
実行回数
0

while文

int n = 1;
while (n <= 100) {
  n = n * 2;
}
printf("n = %d\n", n); // → 128
注意: 条件が永遠に真のままだと無限ループ

ステップ実行 ― for文

for_demo.c

変数の状態

変数名

標準出力

 

do-while文 ― 必ず1回は実行するループ

while は条件を先にチェックしますが、do-while後からチェックします。
そのため、ループの中身が必ず1回は実行されるのが特徴です。
while(前判定)
while (条件) {
    処理;  // 条件が偽なら0回
}
do-while(後判定)
do {
    処理;  // 必ず1回実行
} while (条件);
末尾のセミコロンに注意! } while (条件);; を忘れるとコンパイルエラーになります。

典型的な使い方:入力の再要求

「1〜3を入力してください」→ 不正な入力なら再度要求、というパターンに最適です。
int choice;
do {
    printf("1〜3を選択> ");
    scanf("%d", &choice);
    if (choice < 1 || choice > 3)
        printf("不正な入力です\n");
} while (choice < 1 || choice > 3);
printf("%dが選択されました\n", choice);

3つのループの使い分け

構文判定タイミング最低実行回数使いどころ
for前判定0回回数が決まっているとき
while前判定0回回数が不定・条件で止めたいとき
do-while後判定1回最低1回は実行したいとき(入力チェック等)

break・continue ― ループの制御

break
ループを即座に抜ける。残りの繰り返しはすべてスキップ。
for (int i=0; i<10; i++) {
    if (i == 5) break;
    printf("%d ", i);
}
// 出力: 0 1 2 3 4
continue
今の回の残りをスキップして次の繰り返しへ。ループ自体は続く。
for (int i=0; i<5; i++) {
    if (i == 2) continue;
    printf("%d ", i);
}
// 出力: 0 1 3 4(2だけスキップ)
注意: breakcontinue最も内側のループにだけ作用します。二重ループの内側で break しても、外側のループは止まりません。

自分で書いてみよう ― 繰り返し

my_loop.c
出力
「実行」を押してください...
広告スペース

関連する講座

繰り返し・配列・文字列
第18回 配列
C言語の配列の宣言・初期化・アクセス方法。メモリ配置も図解。
繰り返し・配列・文字列
第15回 デバッグの技法
C言語のデバッグ方法。printfデバッグとよくあるバグの見つけ方を実践的に解説。
条件分岐編
第13回 else if・switch
C言語のelse if文とswitch文の使い方。複数条件分岐を解説。
← 前の講座
第13回 else if・switch
次の講座 →
第15回 デバッグの技法

確認クイズ

この講座の理解度をチェックしましょう!

Q1. for (int i=0; i<5; i++) のループは何回実行される?

4回
5回
6回

i は 0,1,2,3,4 の5つの値を取るので、5回実行されます。

Q2. while(1) はどうなる?

1回だけ実行
無限ループ
コンパイルエラー

条件が常に 1(真)なので、break や return がない限り無限にループし続けます。

Q3. do-while と while の違いは?

違いはない
do-while は最低1回実行される
do-while の方が速い

do-while は条件判定がループの最後にあるため、必ず1回は実行されます。while は最初に条件を判定するため、0回の場合もあります。

この記事をシェア
X(Twitter)でシェア Facebookでシェア LINEで送る はてブ

この講座の理解を深めるおすすめ書籍

サイトで動きを理解し、書籍で演習量を補うと効果的です

📘
苦しんで覚えるC言語
MMGames 著
初心者向けの定番入門書。丁寧な解説で基礎を固められます。
Amazonで見る
📗
新・明解C言語 入門編
柴田望洋 著
図解が豊富で、演習問題も充実。大学の教科書としても採用多数。
Amazonで見る
📙
プログラミング言語C 第2版
B.W.カーニハン, D.M.リッチー 著
通称K&R。C言語の原典。基礎を終えた後のステップアップに最適。
Amazonで見る

※ 上記リンクはアフィリエイトリンクです。購入によりサイト運営を支援いただけます。