0

ここにこのコードがあります:

    string code1 = null;
    Console.Write("Username: " + Environment.UserName.ToString() + ">");
    if (Console.ReadLine() == "info")
    {
        Console.WriteLine("Info:");
    }
    else if (Console.ReadLine() == "Set Code")
    {
        if (code1 == null)
        {
            Console.Write("TEST");
        }
        else
        {
            Console.WriteLine("'Set Code' is not known as a command \nEnter 'info' to view all commands");
            Console.Write("Username: " + Environment.UserName.ToString() + ">");
        }
    }
    else
    {
        string temp = Console.ReadLine();
        Console.WriteLine("'" + temp + "' is not known as a command \nEnter 'info' to view all commands");
    }
    Console.ReadLine();

「Set Code」と入力しても何も実行されず、info などを入力すると実行されstring temp = Console.ReadLine();ますが、実行されませんConsole.WriteLine("'" + temp + "' is not known as a command \nEnter 'info' to view all commands");

そのコードを入れたときに他のものが実行されないのはなぜですか? 私はそれを段階的にデバッグしましたが、そこで壊れているようです。

4

2 に答える 2

3

「Set Code」は 2 番目の入力でのみ入力として期待されるため、最初の入力のみが「info」ではなかった場合...

これを試して:

string code1 = null;
while(true)
{
    Console.Write("Username: " + Environment.UserName.ToString() + ">");
    string line = Console.ReadLine();
    if (line == "info")
    {
        Console.WriteLine("Info:");
    }
    else if (line == "Set Code")
    {
        if (code1 == null)
        {
            Console.Write("TEST");
        }
        else
        {
            Console.WriteLine("'Set Code' is not known as a command \nEnter 'info' to view all commands");
            Console.Write("Username: " + Environment.UserName.ToString() + ">");
        }
    }
    else if (line == "quit")
    {
        break;
    }
    else
    {
        Console.WriteLine("'" + line + "' is not known as a command \nEnter 'info' to view all commands");
    }
}

ユーザーから行を取得するには、ReadLine() を 1 回だけ実行する必要があります。次に、新しい ReadLine() ではなく、その行で比較を行います。これは、作成するすべての ReadLine() がユーザーからの新しい異なる入力を生成するためです。 .

于 2014-02-14T23:30:29.210 に答える