Console.ReadLine else-if 语句中的意外行为
Console.ReadLine unexpected behaviour in else-if statement
我的控制台应用程序遇到了一些问题。
我想检查用户输入并根据用户写的内容执行某些操作。我的代码看起来像这样:
if(Console.ReadLine() == "ADD")
{
//Add
}
else if (Console.ReadLine() == "LIST")
{
//DisplayList
}
else if (Console.ReadLine() == "SORT")
{
//Sort
}
else
{
//DisplayErrorMsg
}
现在,当我在控制台中键入 LIST 时,我得到一个换行符,我必须再次键入 LIST 才能获得预期的行为,并且所有后续的 else-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,else 检查该变量。
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 完全按照它说的那样读取新行。因此,此更改所做的是保存第一次读取并与它进行比较,而不是每次读取一个新行。希望对您有所帮助
我的控制台应用程序遇到了一些问题。 我想检查用户输入并根据用户写的内容执行某些操作。我的代码看起来像这样:
if(Console.ReadLine() == "ADD")
{
//Add
}
else if (Console.ReadLine() == "LIST")
{
//DisplayList
}
else if (Console.ReadLine() == "SORT")
{
//Sort
}
else
{
//DisplayErrorMsg
}
现在,当我在控制台中键入 LIST 时,我得到一个换行符,我必须再次键入 LIST 才能获得预期的行为,并且所有后续的 else-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,else 检查该变量。
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 完全按照它说的那样读取新行。因此,此更改所做的是保存第一次读取并与它进行比较,而不是每次读取一个新行。希望对您有所帮助