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