Console.ReadLine在else语句中的意外行为 - 如果语句
问题描述:
我在控制台应用程序中遇到了一些麻烦。 我想检查用户输入并根据用户写什么执行一些操作。我的代码看起来是这样的:Console.ReadLine在else语句中的意外行为 - 如果语句
if(Console.ReadLine() == "ADD")
{
//Add
}
else if (Console.ReadLine() == "LIST")
{
//DisplayList
}
else if (Console.ReadLine() == "SORT")
{
//Sort
}
else
{
//DisplayErrorMsg
}
现在,当我在控制台类型列表中,我得到一个线断了,我不得不再次类型列表中得到预期的行为,及以后的其他-if语句只是添加另一个换行符。 (下面的例子) 我已经看到无处不在,但我看不到我做错了什么... 请帮忙!
SORT
SORT
SORT
//Sorting...
答
要调用ReadLine
多次,因此你阅读从标准输入多次。请尝试以下操作:
var line = Console.ReadLine();
if (line == "ADD")
{
//Add
}
else if (line == "LIST")
{
//DisplayList
}
else if (line == "SORT")
{
//Sort
}
else
{
//DisplayErrorMsg
}
答
尝试在字符串中获取行,然后测试字符串。
string line = Console.ReadLine();
if (line == "ADD")
{
//Add
}
else if (line == "LIST")
{
//DisplayList
}
else if (line == "SORT")
{
//Sort
}
else
{
//DisplayErrorMsg
}
答
每次通话时间Console.ReadLine()
它会等待用户输入。
将从运行Console.ReadLine()
返回的值分配给变量。
然后做你的if,否则检查该变量。
var userInput = Console.ReadLine();
if(userInput == "ADD")
{
//Add
}
else if (userInput == "LIST")
{
//DisplayList
}
else if (userInput == "SORT")
{
//Sort
}
else
{
//DisplayErrorMsg
}
答
string readfromConsole = Console.ReadLine()
if(readfromConsole == "ADD")
{
//Add
}
else if (readfromConsole == "LIST")
{
//DisplayList
}
else if (readfromConsole == "SORT")
{
//Sort
}
else
{
//DisplayErrorMsg
}
您遇到的问题是,到Console.ReadLine不正是它说,它读取一个新行。所以这个改变是保存了第一次阅读并与之比较,而不是每次都阅读新的一行。我希望这可以帮助
当然......感谢大家的快速反应! –