私のプログラムはコマンドラインから実行され、ユーザーはブール値(はいまたはいいえ)と整数(小数を含まない数値)を入力する必要があります。このために、ユーザーが有効な入力を行ったことを確認するために確認する2つの方法があります。たとえば、「チーズ」の外の温度をユーザーに尋ねた場合、有効な応答ではありません。ユーザーが無効な入力をするとどうなりますか?同じプロンプトを繰り返す必要がありますか?必要な入力タイプをユーザーに思い出させる必要がありますか?
例えば:
Please enter your height in cm: xyz
Please enter an integer.
Please enter your height in cm: 180
Do you wear glasses: 5
Please enter y/n.
Do you wear glasses: blah
Please enter y/n.
Do you wear glasses: y
また、ブール値がユーザーにy/nを使用して答えるように指示することが期待されるかどうかは明らかですか?
これはCLIなので、あまり説明する必要はないと思います。エンドユーザーは多少技術に精通していると思いますので、エンドユーザーはあなたが説明する方法で入力を提供するために使用されるべきです。私の唯一の推奨事項は、最後にヒントを追加することです。つまり
Do you wear glasses (y/n):
私はポールに同意します。 CLIを選択した場合、ユーザーは何を入力する必要があるか理解していると思います。
しかし、手動またはタイプミスのエラーが発生します。人間は間違いを犯します。ブール入力の場合でも、「y」の代わりに「yes」を使用できない場合があります。このシナリオは整数にも拡張でき、ユーザーはドットの代わりにコンマを入力できます。
UIは、ユーザーがこれらのエラーを効果的に処理できるようにする必要があります。最善の方法は、これらの3つのポイントをユーザーに通知することです
Please enter your height in cm (Integers only. Ex: 164): xyz
Sorry, xyz is an invalid input. Please enter only an integer. Please enter your height in cm (Integers only. Ex: 164): 180
Do you wear glasses(y/n): 5
Sorry, 5 is an invalid input. Please enter only y/n. Do you wear glasses(y/n): y
次のように、質問自体に(y/n)を含めることをお勧めします。
Do you wear glasses? (y/n):
ユーザーが間違った答えを入力した場合は、同じ質問をもう一度表示してください。これは自明であると思います:
Do you wear glasses? (y/n):5
Do you wear glasses? (y/n):
..
What's your height? (cm):172