Mig*_*era 0 c# unicode while-loop
while (asteriskWord != hangCharacters && score < 5)
{
while ( letter != ) //This is where I want to test for A-Z a-z
{
Console.WriteLine("Enter a letter please");
letter = Convert.ToChar(Console.ReadLine());
}
}
Run Code Online (Sandbox Code Playgroud)
在第一个之后,while-loop我希望能够将输入放在while循环中,如果值为=字母AZ或az,则会中断.
这样,如果用户输入错误的信息,循环将continue询问信息.
感谢您的时间和考虑.我也尝试写信!='A'&& letter!='a'......等等,但由于某种原因它没有用.
Glo*_*del 13
字符可以相互比较,就像数字一样:
while (!((letter >= 'A' && letter <= 'Z') || (letter >= 'a' && letter <= 'z'))) {
Console.WriteLine("Enter a letter please");
letter = Convert.ToChar(Console.ReadLine());
}
Run Code Online (Sandbox Code Playgroud)
那么最简单的方法就是使用比较.如果你肯定想在一个单独的表达中做到这一点,Glorfindel的答案是恰当的.然而,所有这些括号和否定使我对可读性感到紧张.我将它分解为一个单独的方法:
while (!IsValidLetter(letter))
{
...
}
...
private static bool IsValidLetter(char letter)
{
return (letter >= 'a' && letter <= 'z') ||
(letter >= 'A' && letter <= 'Z');
}
Run Code Online (Sandbox Code Playgroud)
无论你发现哪个更具可读性 - 后者更容易在以后修改,当然,如果你最终需要更复杂的要求.