【C言語】while文の書き方を解説

この記事では、C言語のwhile文の使い方や応用例、注意点について解説します。

また、無限ループに注意したり、条件式の更新を忘れないようにするポイントも紹介します。

初心者の方にもわかりやすく解説していきますので、ぜひ読み進めてみてください。

目次から探す

while文とは

プログラミングにおいて、while文は特定の条件が真である限り、繰り返し処理を行うための制御構造です。

条件が真である間は、指定されたブロック内の処理が繰り返し実行されます。

while文の概要

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

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

条件式は、真偽値を返す式であり、真である場合にはループが継続し、偽である場合にはループが終了します。

while文の基本構文

while文の基本構文は以下の通りです。

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

条件式が真である限り、ブロック内の処理が繰り返し実行されます。

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

while文のブロック内の処理は、中括弧 {} で囲まれた部分です。

このブロック内には、繰り返し実行する処理を記述します。

while文の使い方

while文の条件式

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

条件式は、真偽値を返す式であり、その結果によって繰り返しの継続または終了が決まります。

while (条件式) {
    // 条件式が真の場合に実行される処理
}

while文のブロック内の処理

while文のブロック内には、条件式が真の場合に実行される処理を記述します。

このブロック内の処理が繰り返し実行されます。

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

上記の例では、変数iが0から始まり、5未満の間、printf関数を用いてiの値を表示し、iを1ずつ増やしています。

while文の制御フロー

while文の制御フローは、条件式の評価結果によって決まります。

条件式が真の場合は、ブロック内の処理が実行され、その後再び条件式が評価されます。

条件式が偽の場合は、while文の実行が終了し、次の処理に進みます。

int i = 0;
while (i < 5) {
    printf("%d\n", i);
    i++;
}
printf("ループ終了後の処理\n");

上記の例では、変数iが0から始まり、5未満の間、printf関数を用いてiの値を表示し、iを1ずつ増やしています。

ループ終了後には、printf関数を用いて「ループ終了後の処理」というメッセージを表示しています。

while文は、条件式が常に真となる無限ループになる可能性があるため、注意が必要です。

適切な条件式と制御フローを設計することが重要です。

while文の応用例

while文を使った繰り返し処理

while文は、指定した条件が真である限り、繰り返し処理を行うために使用されます。

繰り返し処理を行う際には、while文を活用することで効率的なプログラムを作成することができます。

以下は、1から10までの数値を順番に表示するプログラムの例です。

#include <stdio.h>
int main() {
    int i = 1;
    while (i <= 10) {
        printf("%d\n", i);
        i++;
    }
    return 0;
}

このプログラムでは、変数iを初期値1で初期化し、while文の条件式であるi <= 10が真である限り、繰り返し処理が行われます。

繰り返し処理の中では、printf関数を使って変数iの値を表示し、iをインクリメントしています。

このようにwhile文を使うことで、指定した回数だけ処理を繰り返すことができます。

while文を使った入力の受け取り

while文は、ユーザーからの入力を受け取る際にも活用することができます。

以下は、ユーザーが0を入力するまで、入力された数値を合計していくプログラムの例です。

#include <stdio.h>
int main() {
    int sum = 0;
    int num;
    
    while (1) {
        printf("数値を入力してください(0を入力すると終了):");
        scanf("%d", &num);
        
        if (num == 0) {
            break;
        }
        
        sum += num;
    }
    
    printf("合計:%d\n", sum);
    
    return 0;
}

このプログラムでは、変数sumを初期値0で初期化し、while文の条件式である1(真)が成り立つ限り、繰り返し処理が行われます。

繰り返し処理の中では、ユーザーに数値の入力を促すメッセージを表示し、scanf関数を使って入力された数値を変数numに格納します。

その後、入力された数値が0であれば、break文を使ってwhile文から抜け出します。

0以外の場合は、変数sumに入力された数値を加算します。

最後に、合計値を表示します。

while文を使ったデータの処理

while文は、データの処理においても有用です。

以下は、配列に格納されたデータを順番に処理するプログラムの例です。

#include <stdio.h>
int main() {
    int numbers[] = {1, 2, 3, 4, 5};
    int i = 0;
    
    while (i < 5) {
        printf("%d\n", numbers[i]);
        i++;
    }
    
    return 0;
}

このプログラムでは、配列numbersに1から5までの数値が格納されています。

変数iを初期値0で初期化し、while文の条件式であるi < 5が成り立つ限り、繰り返し処理が行われます。

繰り返し処理の中では、配列numbersの要素を順番に表示しています。

変数iをインクリメントすることで、次の要素にアクセスしています。

このようにwhile文を使うことで、配列などのデータを順番に処理することができます。

以上が、while文の応用例の一部です。

while文は、繰り返し処理やデータの処理など、様々な場面で活用することができます。

適切に使いこなすことで、効率的なプログラムを作成することができます。

1 2
目次から探す