为什么这段代码总是先不执行case,要第2次输入才执行...?

来源:百度知道 编辑:UC知道 时间:2024/06/19 13:38:14
while (Console.ReadLine() != "exit")
{
switch (Console.ReadLine())
{
case "about":
Console.WriteLine ("By .");
break;
case "get":
Console.WriteLine("Number:");
switch (Console.ReadLine())
{
case "1":
Console.WriteLine("Get 1");
break;
case "2":
Console.WriteLine("Get 2");
break;
default:
Console.WriteLine("No this command");

while (Console.ReadLine() != "exit") -- 这里是第一次
{
switch (Console.ReadLine()) -- 这里是第二次

你改成:
string command = null;
do
{
command = Console.ReadLine();
switch(command)
{
……
}

}while(command != "exit");

就行了

while (Console.ReadLine() != "exit") 这里已经把当前输入读取了一次。

switch (Console.ReadLine()) 这里的ReadLine是读取下一行了。

改进办法是将Console.ReadLine() 赋值给变量。
比如 string readLine = Console.ReadLine()
while(readLine != "exit")
{
switch (readLine)

楼上说 的“改进办法是将Console.ReadLine() 赋值给变量”没错
这样就可以了