C言語のループ制御文(for・while・do-while)を徹底解説!フローチャートとサンプルコード付き
C言語におけるループ制御文は、同じ処理を何度も繰り返し実行したい場合に使われる重要な構文です。毎回コードを書き連ねる必要がなくなり、プログラムを簡潔かつ効率的に記述できます。
C言語で利用できるループ制御文は、主に以下の3種類です。
- for文
- while文
- do-while文
本記事では、それぞれの構文の書き方、フローチャートによる動作の流れ、実際に動くサンプルプログラムと実行結果まで、初心者にもわかりやすく解説します。
for文とは?基本構文と使い方
for文は、「初期化」「条件式」「増減式」を1行にまとめて記述できる、最もよく使われるループ構文です。繰り返す回数があらかじめ決まっている場合に特に便利です。
基本構文は以下の通りです。
for (初期化 ; 条件式 ; 増減式){
繰り返し実行する処理(ループ本体)
}
for文のフローチャート
for文の処理の流れは、次のフローチャートのようになります。

各要素の役割は以下の通りです。
初期化: 通常は代入文であり、ループ制御変数に初期値を設定します。この処理はループ開始時に一度だけ実行されます。
条件式: 関係演算子を使った式で、ループを継続するか終了するかを判定します。
増減式: ループ制御変数をどのように変化させるか(インクリメント/デクリメント)を定義します。
条件式が真(true)である限り、ループ内の処理は繰り返し実行されます。
条件式が偽(false)になった時点でループを抜け、for文の次のステートメントへ処理が移ります。
for文のサンプルプログラム
以下は、1から5までの数値を順番に表示するC言語プログラムです。
#include<stdio.h>
main( ){
int k;
for (k = 1; k<=5; k++){
printf ("%d",k);
}
}
実行結果
上記のプログラムを実行すると、次のような出力が得られます。
1 2 3 4 5
while文とは?基本構文と使い方
while文は、条件式だけを指定するシンプルなループ構文です。初期化はループの前に行い、増減処理はループ本体の中に記述します。繰り返し回数が事前に不明な場合に適しています。
基本構文は以下の通りです。
while (条件式){
繰り返し実行する処理(ループ本体)
}
while文のフローチャート
while文の処理の流れは、次のフローチャートのようになります。

while文のポイントは以下の通りです。
- 初期化はループに入る前に行います。
- 条件式が真である限り、ループは繰り返し実行されます。
- 増減処理(インクリメント/デクリメント)はループ本体の中で行います。
while文のサンプルプログラム
以下は、while文を使って1から5までの数値を表示するC言語プログラムです。
#include<stdio.h>
main( ){
int k;
k = 1;
while (k<=5){
printf ("%d",k);
k++;
}
}
実行結果
上記のプログラムを実行すると、次のような出力が得られます。
1 2 3 4 5
do-while文とは?基本構文と使い方
do-while文は、必ず最初に1回はループ本体を実行してから条件式を判定するのが特徴です。そのため、少なくとも1回は処理を実行したい場合に最適です。
基本構文は以下の通りです。
初期化
do{
繰り返し実行する処理(ループ本体)
増減処理
} while (条件式);
do-while文のフローチャート
do-while文の処理の流れは、次のフローチャートのようになります。

do-while文のサンプルプログラム
以下は、do-while文を使って1から5までの数値を表示するC言語プログラムです。
#include<stdio.h>
main( ){
int k;
k = 1;
do{
printf ("%d",k);
k++;
}
while (k <= 5);
}
実行結果
上記のプログラムを実行すると、次のような出力が得られます。
1 2 3 4 5
まとめ:3つのループ制御文の違い
C言語のループ制御文には、それぞれ以下のような特徴があります。
- for文: 初期化・条件式・増減式をまとめて記述でき、繰り返し回数が決まっている処理に向いています。
- while文: 条件式のみで制御するシンプルな構文で、繰り返し回数が不明な場合に便利です。
- do-while文: 条件判定の前に必ず1回処理を実行するため、最低1回は実行が必要な処理に適しています。
用途に応じてこれらのループを使い分けることで、より読みやすく効率的なC言語プログラムを書けるようになります。ぜひ実際にコードを入力して、動作を確認してみてください。
-
C言語のシフト演算とは?左シフト・右シフト・補数の基本をわかりやすく解説
問題 C言語を使用して、ある数値に対する左シフト・右シフト・補数(ビット反転)を求める簡単なプログラムを作成するには、どのようにすればよいのでしょうか。 解決方法 左シフト(<<) 変数の値を1ビットだけ左へシフトすると、その値は2倍になります。「a × 2」を計算したのと同じ結果です。 例:a = 10 の場合、a << 1 = 20 右シフト(>>) 変数の値を1ビットだけ右へシフトすると、その値は元の半分になります。「a ÷ 2」の整数除算と同じ結果です。 例:a = 10 の場合、a >> 1 = 5 サンプルプログラム 以下は、シ
-
C言語入門:ネストされたforループとbreak・continue・goto文の使い方を徹底解説
ネストされたforループ(二重ループ)とは、forループの本体の中に、さらに別のfor文が含まれている構造のことです。表や行列の操作、九九のような組み合わせ処理など、「繰り返しの中でさらに繰り返しが必要な場面」でよく使われます。全体の繰り返し回数は、外側のループの繰り返し回数 × 内側のループの繰り返し回数で求められます。ネストされたforループのサンプルプログラム以下は、ネストされたforループを使用したC言語のプログラム例です。#include<stdio.h> main( ){ int i,j; &nbs