【发布时间】:2018-09-19 12:59:30
【问题描述】:
所以下面是我的代码。当我按 5 时,我必须按 Enter 5 次才能让程序写入该行,然后按 6 根本不起作用。任何解决方案将不胜感激。
Boolean keepRunning = true;
while (keepRunning = true)
{
if (Console.ReadLine() == "1")
{
Console.WriteLine("Still running");
}
else if (Console.ReadLine() == "2")
{
Console.WriteLine("Still running2");
}
else if (Console.ReadLine() == "3")
{
Console.WriteLine("Still running3");
}
else if (Console.ReadLine() == "4")
{
Console.WriteLine("Still running4");
}
else if (Console.ReadLine() == "5")
{
Console.WriteLine("Still running5");
}
else if (Console.ReadLine() == "6")
{
keepRunning = false;
}
}
【问题讨论】:
-
一个有用的问题要问自己,每当您的代码没有达到您的预期时,“我在这段代码中做了什么假设?”您的错误假设是
Console.ReadLine()所做的(以及keepRunning = true所做的)。阅读文档可能会有所帮助。 -
Console.Readline()在那里暂停程序,直到按下某个键。在这里它进入第一个if并等待按键。如果不是 1,则进入第二个else...if并再次检查密钥。在@MightyBadaboom 解决方案中,您只需要阅读一次 -
ReadLine() 期望用户在继续之前按回车键,因此这仅对一次击键无效。无论如何,在每条指令中使用 ReadLine 没有意义,因为程序将在每个条件下停止,直到输入一个键:第一次它需要“1”,所以如果你输入任何其他键,你将进入下一个链接条件,期望为“2”等等......
标签: c# while-loop readline