【C言語】do-while文を使って入力の検証と再入力を行う方法

この記事では、C言語のプログラミングにおいて、do-while文を使って入力の検証と再入力を行う方法について解説します。

具体的には、入力の検証条件の設定や実装例を通じて、プログラムが要件を満たすまでユーザーからの再入力を求める方法を学ぶことができます。

さらに、数値の範囲チェックや文字列の長さチェックなど、入力の検証と再入力の応用例も紹介します。

初心者の方にもわかりやすく、実際のサンプルコードを交えながら解説していきますので、ぜひご覧ください。

目次から探す

do-while文を使った入力の検証と再入力の方法

プログラミングにおいて、ユーザーからの入力を受け付ける際には、入力値の検証が重要です。

入力値が要件を満たしていない場合、再入力を促す必要があります。

C言語では、do-while文を使って入力の検証と再入力を行うことができます。

入力の検証条件の設定

まず、入力の検証条件を設定する必要があります。

例えば、ユーザーからの入力が正の整数であるかどうかを検証する場合を考えてみましょう。

以下のような条件を設定します。

int input;
do {
    printf("正の整数を入力してください: ");
    scanf("%d", &input);
} while (input <= 0);

上記のコードでは、do-while文を使って入力を受け付け、入力値が0以下の場合は再入力を促します。

正の整数が入力されるまで、繰り返し入力を求めることができます。

do-while文を使った入力の検証と再入力の実装例

次に、実際にdo-while文を使って入力の検証と再入力を行う実装例を見てみましょう。

以下の例では、ユーザーからの入力が1から10の範囲内の整数であるかどうかを検証します。

int input;
do {
    printf("1から10の範囲内の整数を入力してください: ");
    scanf("%d", &input);
} while (input < 1 || input > 10);

上記のコードでは、do-while文を使って入力を受け付け、入力値が1未満または10を超える場合は再入力を求めます。

1から10の範囲内の整数が入力されるまで、繰り返し入力を求めることができます。

以上が、do-while文を使った入力の検証と再入力の方法の概要です。

入力の検証条件を適切に設定し、do-while文を使って再入力を行うことで、ユーザーからの正しい入力を得ることができます。

入力の検証と再入力の応用例

数値の範囲チェック

数値の範囲チェックは、ユーザーからの入力が特定の範囲内にあるかどうかを確認するために使用されます。

例えば、ユーザーに年齢を入力してもらい、その値が0以上120以下であるかどうかを確認する場合などがあります。

以下に、数値の範囲チェックを行うためのサンプルコードを示します。

#include <stdio.h>
int main() {
    int age;
    do {
        printf("年齢を入力してください: ");
        scanf("%d", &age);
        if (age < 0 || age > 120) {
            printf("無効な年齢です。再入力してください。\n");
        }
    } while (age < 0 || age > 120);
    printf("入力された年齢は %d 歳です。\n", age);
    return 0;
}

上記のコードでは、do-while文を使ってユーザーに年齢の入力を促し、入力された値が0未満または120を超える場合は無効な年齢として再入力を求めます。

正しい範囲の値が入力されるまで、繰り返し入力を求めることができます。

文字列の長さチェック

文字列の長さチェックは、ユーザーからの入力が特定の文字数制限を満たしているかどうかを確認するために使用されます。

例えば、ユーザーにパスワードを入力してもらい、その長さが8文字以上であるかどうかを確認する場合などがあります。

以下に、文字列の長さチェックを行うためのサンプルコードを示します。

#include <stdio.h>
#include <string.h>
int main() {
    char password[20];
    do {
        printf("パスワードを入力してください: ");
        scanf("%s", password);
        if (strlen(password) < 8) {
            printf("パスワードは8文字以上で入力してください。\n");
        }
    } while (strlen(password) < 8);
    printf("入力されたパスワードは %s です。\n", password);
    return 0;
}

上記のコードでは、do-while文を使ってユーザーにパスワードの入力を促し、入力された文字列の長さが8文字未満の場合は再入力を求めます。

正しい長さのパスワードが入力されるまで、繰り返し入力を求めることができます。

これらの応用例を参考にして、do-while文を使った入力の検証と再入力の方法を活用してみてください。

目次から探す