この記事では、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文の基本構文
do-while文の書式
do-while文
は、指定された条件が真である限り、繰り返し実行される制御構造です。
以下がdo-while文
の基本的な書式です。
do {
// 実行したい処理
} while (条件式);
doの後には中括弧{}で囲まれた処理が書かれます。
処理が実行された後、whileの後に指定された条件式が評価されます。
条件式が真である場合、処理は再度実行されます。
条件式が偽である場合、do-while文
の実行は終了します。
do-while文の実行フロー
do-while文
の実行フローは以下のようになります。
- 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文
を使うことで、入力のバリデーションなど、特定の条件が満たされるまで繰り返し入力を求めることができます。