【C言語】while文とfor文の違いについて解説

この記事では、C言語におけるwhile文for文の違いについて解説します。

while文for文の基本的な構文や制御条件の評価タイミング、初期化と更新処理、使用する場面の違いについて理解することができます。

初心者の方にもわかりやすく、具体的なコード例も交えて解説していますので、ぜひ参考にしてください。

目次から探す

while文とfor文の基本的な構文

while文の構文

while文は、指定した条件が真である限り、繰り返し処理を行います。

while (条件式) {
    // 繰り返し実行する処理
}

条件式が真の場合、繰り返し実行する処理が実行されます。

条件式が偽になると、while文の処理は終了します。

for文の構文

for文は、指定した初期化式、条件式、更新式を使って、繰り返し処理を行います。

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

初期化式は、ループの最初に一度だけ実行されます。

条件式が真の場合、繰り返し実行する処理が実行されます。

更新式は、繰り返し実行する処理の後に実行されます。

条件式が偽になると、for文の処理は終了します。

while文for文の構文は、基本的には上記のようになりますが、実際のプログラムでは、条件式や初期化式、更新式の中に複数の文を書くこともできます。

また、条件式や初期化式、更新式を省略することも可能です。

制御条件の評価タイミングの違い

while文の制御条件の評価タイミング

while文では、ループの実行前に制御条件が評価されます。

つまり、ループのブロック内の処理が実行される前に、制御条件がチェックされます。

もし制御条件が真であれば、ループのブロック内の処理が実行されます。

制御条件が偽であれば、ループは終了します。

以下に、while文の制御条件の評価タイミングの例を示します。

int i = 0;
while (i < 5) {
    printf("iの値は%dです\n", i);
    i++;
}

この例では、変数iが0から始まり、制御条件i < 5が評価されます。

iが5未満である限り、ループのブロック内の処理が実行され、iの値が表示されます。

iが5以上になると、制御条件が偽となり、ループは終了します。

for文の制御条件の評価タイミング

for文では、ループの初期化、制御条件の評価、更新処理の順に行われます。

初期化はループの最初に一度だけ実行され、制御条件の評価はループのブロック内の処理の前に行われます。

更新処理はループのブロック内の処理の後に行われます。

以下に、for文の制御条件の評価タイミングの例を示します。

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

この例では、変数iが0から始まり、制御条件i < 5が評価されます。

iが5未満である限り、ループのブロック内の処理が実行され、iの値が表示されます。

ループのブロック内の処理が終了すると、更新処理i++が実行され、iの値が1増加します。

再び制御条件が評価され、ループが継続するかどうかが判断されます。

制御条件の評価タイミングの違いにより、while文for文ではループの制御方法が異なります。

適切な制御方法を選択することで、プログラムの効率性や可読性を向上させることができます。

初期化と更新処理の違い

while文の初期化と更新処理

while文では、初期化と更新処理を明示的に行う必要があります。

初期化はループの最初に一度だけ実行され、変数の初期化やカウンタの設定などを行います。

更新処理はループの各繰り返しの終わりに実行され、変数の値を更新したり、カウンタを増減させたりすることができます。

以下は、while文の初期化と更新処理の例です。

int i = 0; // 初期化
while (i < 10) {
    printf("%d\n", i);
    i++; // 更新処理
}

この例では、変数iを0で初期化し、iが10未満の間、iの値を表示してからiを1増やしています。

for文の初期化と更新処理

for文では、初期化、制御条件、更新処理を1つの行でまとめて記述します。

初期化はループの最初に一度だけ実行され、変数の初期化やカウンタの設定などを行います。

制御条件はループの各繰り返しの前に評価され、条件が真の場合にループが実行されます。

更新処理はループの各繰り返しの終わりに実行され、変数の値を更新したり、カウンタを増減させたりすることができます。

以下は、for文の初期化と更新処理の例です。

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

この例では、変数iを0で初期化し、iが10未満の間、iの値を表示してからiを1増やしています。

初期化と更新処理を1つの行でまとめることで、コードの見通しが良くなり、短く簡潔なループを書くことができます。

また、初期化や更新処理をループの外で行う必要がないため、コードのミスを防ぐことができます。

1 2
目次から探す