web-dev-qa-db-ja.com

プログラムで、ユーザーが間違ったタイプを入力したときに何を言うべきですか?例えばはい/いいえが予想されるときに入力された番号

私のプログラムはコマンドラインから実行され、ユーザーはブール値(はいまたはいいえ)と整数(小数を含まない数値)を入力する必要があります。このために、ユーザーが有効な入力を行ったことを確認するために確認する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を使用して答えるように指示することが期待されるかどうかは明らかですか?

2
Celeritas

これはCLIなので、あまり説明する必要はないと思います。エンドユーザーは多少技術に精通していると思いますので、エンドユーザーはあなたが説明する方法で入力を提供するために使用されるべきです。私の唯一の推奨事項は、最後にヒントを追加することです。つまり

Do you wear glasses (y/n):
7
Paul Dessert

私はポールに同意します。 CLIを選択した場合、ユーザーは何を入力する必要があるか理解していると思います。

しかし、手動またはタイプミスのエラーが発生します。人間は間違いを犯します。ブール入力の場合でも、「y」の代わりに「yes」を使用できない場合があります。このシナリオは整数にも拡張でき、ユーザーはドットの代わりにコンマを入力できます。

UIは、ユーザーがこれらのエラーを効果的に処理できるようにする必要があります。最善の方法は、これらの3つのポイントをユーザーに通知することです

  1. 入力した内容をユーザーに知らせます
  2. なぜ無効なのですか
  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

0
Gautham Raja

次のように、質問自体に(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
0
Ades