ユーザの入力を検証し、文字の範囲内にあることを確認しようとしています(3つのオプションa、b、c)。私はそれを動作させることができたが、私はなぜそれほど理解していない。 !char.TryParse(Console.Readline(), out theCharacter
は何をユーザーがchar型に入り、|| !the.Character.Equals('a')
は、単に文が真でない場合、ユーザは意志(charがAに等しくない)ことを検証することをことを検証するwhile char.TryParse character validation
char theCharacter;
Console.WriteLine("{0}", "Enter a,b or c");
while (!char.TryParse(Console.ReadLine(), out theCharacter) || !theCharacter.Equals('a'))
{
if (theCharacter.Equals('b'))
{
break;
}
else if (theCharacter.Equals('c'))
{
break;
}
else
{
Console.WriteLine("Please chose a valid character(a, b or c).");
}
}
私は理解して(あるいはそう信じています) a、b、cのいずれかを入力することを約束する。
しかし、私は次の操作を実行した場合:
while (!char.TryParse(Console.ReadLine(), out theCharacter) || !theCharacter.Equals('a') || !theCharacter.Equals('b') || !theCharacter.Equals('c'))
どんなに私の入力が何であるかを、ユーザは、whileループでスタックしていない と私がしなければされています
while (!char.TryParse(Console.ReadLine(), out theCharacter) && (!theCharacter.Equals('a') == true || !theCharacter.Equals('b') == true || !theCharacter.Equals('c')== true))
何があって文字Iを入力すると、theCharacter
として受け入れられます。
誰かが次の2つの文がうまくいかない理由を説明することができますか?私の宿題のために
、theCharacter
はchar
タイプ、およびカント使用array
sであり、または他の私はstring
で行って、物事が容易になっただろう。
私は私の元の要求を変更した、私は配列を使用することはできません。また、私の質問のために、私が後にしたことがうまくいかず、なぜ私が何をしたのかを理解したいと思います。 – glls
あなたの質問に正確に答えるためにそれを編集し、コードを少し簡略化しました。それが助けて欲しいです:) – Royar
それは確かにします。ありがとう! – glls