2

我不知道我在做什么,很难到达我所在的位置。随意用代码更正一些东西,帮我添加一个循环,甚至从头开始。

这是我正在尝试制作一个基于控制台的应用程序的问题,该应用程序要求用户从键盘输入小写字母。如果输入的字符是小写字母,显示“OK”;如果不是小写字母,则显示错误消息。该程序应继续运行,直到用户键入“!”。

这是我到目前为止所拥有的:

if (Char.IsLower(c))
{
    Console.WriteLine("OK");
}
else if (Char.IsUpper(c))
{
    Console.WriteLine("The character is not a lowercase letter.");
}
else if (Char.IsDigit(c))
{
    Console.WriteLine("The character is not a lowercase letter.");
}
else
{
    Console.WriteLine("The character is not a lowercase letter.");
}

Console.ReadKey();
4

3 回答 3

2

条件比你在那里容易得多..这是你的条件的一个例子。在我看来,您已经发生了某种循环,因为c您的示例中存在:

if (c == '!') {
    break;
}
else if (char.IsLower(c)) {
    // it's fine!
    Console.WriteLine("OK");
}
else {
    // it's not a lowercase character
    Console.WriteLine("Not a lowercase character");
}
于 2013-08-13T01:18:17.300 回答
2

这段代码应该可以工作。它将循环直到用户输入感叹号。

while (true)
{
    var inputCharacter = Console.ReadKey().KeyChar;
    if (inputCharacter == '!')
    {
        break;
    }

    if (char.IsLower(inputCharacter))
    {
        Console.WriteLine("OK");
    }
    else
    {
        Console.WriteLine("The character is not a lowercase letter.");
    }
}
于 2013-08-13T01:20:40.730 回答
1

您可以在等待时使用while循环Console.ReadKey!

char c;
while ((c = Console.ReadKey(true).KeyChar) != '!')
{
    if (char.IsLower(c))
    {
        Console.WriteLine("OK");
        continue;
    }
    Console.WriteLine("The character is not a lowercase letter.");
}
于 2013-08-13T01:27:05.567 回答