C# 为什么我的代码在键入“时不运行”;设置代码";?

C# 为什么我的代码在键入“时不运行”;设置代码";?,c#,console,console-application,readline,console.readline,C#,Console,Console Application,Readline,Console.readline,我这里有这个代码: string code1 = null; Console.Write("Username: " + Environment.UserName.ToString() + ">"); if (Console.ReadLine() == "info") { Console.WriteLine("Info:"); } else if (Console.ReadLine() == "Set Code") {

我这里有这个代码:

    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()但它不会运行控制台.WriteLine(““+temp+””不是一个命令\n输入“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(),从用户那里得到一行,然后在那一行上进行比较,而不是在一个新的ReadLine()上,因为你所做的每一个ReadLine()都会从用户那里产生一个新的、不同的输入。

因为“设置代码”只会在第二个输入中作为输入,如果只有第一个输入不是“信息”

试试这个:

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(),从用户那里得到一行,然后在那一行上进行比较,而不是在一个新的ReadLine()上,因为你所做的每一个ReadLine()都会从用户那里产生一个新的、不同的输入。

因为“设置代码”只会在第二个输入中作为输入,如果只有第一个输入不是“信息”

试试这个:

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(),从用户那里得到一行,然后在那一行上进行比较,而不是在一个新的ReadLine()上,因为你所做的每一个ReadLine()都会从用户那里产生一个新的、不同的输入。

因为“设置代码”只会在第二个输入中作为输入,如果只有第一个输入不是“信息”

试试这个:

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()一次,就可以从用户那里获得一行,然后在该行上进行比较,而不是在新的ReadLine()上进行比较,因为您所做的每个ReadLine()都会从用户那里生成一个新的、不同的输入。

因为每次调用
Console.ReadLine()
都会得到一个新的输入。如果您编写
“设置代码”
您的第一个if语句将被传递,但随后在您调用的else-if语句中调用
控制台。再次读取行
,并且
else-if
将在您键入后检查您的新输入,而不是第一个输入。而是首先获取输入并存储到变量中,然后在if-elseif语句中使用该变量:

string input = Console.ReadLine();
if (input == "info")

因为每次调用
Console.ReadLine()
时,您都会得到一个新的输入。如果您编写
“Set code”
将传递第一个If语句,但在else If语句中,您将再次调用
Console.ReadLine
,并且在键入后,
else If
将检查您的新输入,不是第一个。而是先获取输入并存储到变量中,然后在if-elseif语句中使用该变量:

string input = Console.ReadLine();
if (input == "info")

因为每次调用
Console.ReadLine()
时,您都会得到一个新的输入。如果您编写
“Set code”
将传递第一个If语句,但在else If语句中,您将再次调用
Console.ReadLine
,并且在键入后,
else If
将检查您的新输入,不是第一个。而是先获取输入并存储到变量中,然后在if-elseif语句中使用该变量:

string input = Console.ReadLine();
if (input == "info")

因为每次调用
Console.ReadLine()
时,您都会得到一个新的输入。如果您编写
“Set code”
将传递第一个If语句,但在else If语句中,您将再次调用
Console.ReadLine
,并且在键入后,
else If
将检查您的新输入,不是第一个。而是先获取输入并存储到变量中,然后在if-elseif语句中使用该变量:

string input = Console.ReadLine();
if (input == "info")

只需再删除一个ReadLine,就可以了。谢谢。我会试试的谢谢,错过了另一个:)@Steve你是什么意思?在最后一个else中有另一个'ReadLine()'进入了一个'temp'变量。。。正如@Steve所说,我删除了它,并用“line”替换了temp,只需再删除一个ReadLine,您就可以了。谢谢。我会试试的谢谢,错过了另一个:)@Steve你是什么意思?在最后一个else中有另一个'ReadLine()'进入了一个'temp'变量。。。正如@Steve所说,我删除了它,并用“line”替换了temp,只需再删除一个ReadLine,您就可以了。谢谢。我会试试的谢谢,错过了另一个:)@Steve你是什么意思?在最后一个else中有另一个'ReadLine()'进入了一个'temp'变量。。。正如@Steve所说,我删除了它,并用“line”替换了temp,只需再删除一个ReadLine,您就可以了。谢谢。我会试试的谢谢,错过了另一个:)@Steve你是什么意思?在最后一个else中有另一个'ReadLine()'进入了一个'temp'变量。。。我按照@Steve的评论删除了它,并用“line”替换了temp