【C言語】do-while文の使い方

この記事では、C言語のプログラミングにおいて重要な制御構造の一つである「do-while文」について解説します。

do-while文の基本的な構文や特徴、使用例、注意点などを通じて、初心者の方でも理解しやすく説明します。

目次から探す

do-while文とは

プログラミングにおいて、do-while文は繰り返し処理を行うための制御構造の一つです。

do-while文は、まず処理を実行し、その後に条件を判定してループを継続するかどうかを決定します。

つまり、最低でも一度は処理が実行されることが特徴です。

do-while文の概要

do-while文の基本的な構文は以下の通りです。

do {
    // 処理の内容
} while (条件式);

まず、doの後に中括弧{}で囲まれた処理が実行されます。

その後、whileの後に条件式が記述されています。

条件式が真(true)の場合は、処理が繰り返されます。

条件式が偽(false)の場合は、do-while文を抜けて次の処理に進みます。

do-while文の特徴

do-while文の特徴は以下の通りです。

  • 最低でも一度は処理が実行される
  • 条件式の評価は処理の後に行われる
  • 条件式が真の場合は繰り返し処理が続行される
  • 条件式が偽の場合は繰り返し処理が終了する

do-while文は、特定の処理を最低でも一度は実行したい場合や、条件式の評価を処理の後に行いたい場合に便利です。

また、条件式が真である限り繰り返し処理が続行されるため、必要な回数だけ処理を繰り返すことができます。

do-while文は、while文とは異なり、条件式の評価が後に行われるため、最低でも一度は処理が実行されることに注意してください。

do-while文の基本構文

do-while文の書式

do-while文は、指定された条件が真である限り、繰り返し実行される制御構造です。

以下がdo-while文の基本的な書式です。

do {
    // 実行したい処理
} while (条件式);

doの後には中括弧{}で囲まれた処理が書かれます。

処理が実行された後、whileの後に指定された条件式が評価されます。

条件式が真である場合、処理は再度実行されます。

条件式が偽である場合、do-while文の実行は終了します。

do-while文の実行フロー

do-while文の実行フローは以下のようになります。

  1. doの後に指定された処理が実行されます。
  2. 処理の実行後、whileの後に指定された条件式が評価されます。
  3. 条件式が真である場合、処理は再度実行されます。

条件式が偽である場合、do-while文の実行は終了します。

do-while文は、最低でも一度は処理が実行されるため、条件式の評価は処理の後に行われる点に注意してください。

do-while文は、処理を最低でも一度は実行したい場合や、条件式の評価を後回しにしたい場合に使用されます。

また、do-while文while文とは異なり、条件式の評価が後ろにあるため、処理が少なくとも一度は実行されることが保証されます。

do-while文の使用例

do-while文を使った繰り返し処理の例

do-while文は、条件式の評価をループの最後に行うため、最低でも1回はループが実行される特徴があります。

これを利用して、特定の処理を繰り返し実行することができます。

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

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

このプログラムでは、変数iを初期値1で初期化し、do-while文の中でprintf関数を使ってiの値を表示しています。

その後、iをインクリメントしています。

条件式i <= 10が成り立つ限り、ループが繰り返されます。

実行結果は以下のようになります。

1
2
3
4
5
6
7
8
9
10

このように、do-while文を使うことで、指定した処理を繰り返し実行することができます。

do-while文を使った入力のバリデーションの例

do-while文は、条件式の評価をループの最後に行うため、最低でも1回はループが実行される特徴があります。

これを利用して、ユーザーからの入力をバリデーションするプログラムを作成することができます。

以下は、ユーザーに正の整数を入力させ、正しい値が入力されるまで繰り返し入力を求めるプログラムの例です。

#include <stdio.h>
int main() {
    int num;
    
    do {
        printf("正の整数を入力してください: ");
        scanf("%d", &num);
    } while (num <= 0);
    
    printf("入力された値は %d です。\n", num);
    
    return 0;
}

このプログラムでは、do-while文の中でprintf関数を使ってユーザーに正の整数の入力を促し、scanf関数を使って入力を受け取っています。

その後、条件式num <= 0が成り立つ限り、ループが繰り返されます。

入力された値が正の整数でない場合、ループが繰り返され、再度入力を求めます。

正しい値が入力された場合、ループを抜けて入力された値を表示します。

実行結果は以下のようになります。

正の整数を入力してください: -5
正の整数を入力してください: 0
正の整数を入力してください: 10
入力された値は 10 です。

このように、do-while文を使うことで、入力のバリデーションなど、特定の条件が満たされるまで繰り返し入力を求めることができます。

1 2
目次から探す