代码之家  ›  专栏  ›  技术社区  ›  Caleb

如何让C语言的程序对用户输入做出反应

  •  -2
  • Caleb  · 技术社区  · 7 年前

    下面是我的代码。当我按5时,我必须按回车键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;
                    }
                }
    
    2 回复  |  直到 7 年前
        1
  •  8
  •   Mighty Badaboom Karthick Raju    7 年前

    你在等待每个人的进入 Console.ReadLine();

    你应该把你的while状态改成 keepRunning == true . 以您当前设置的版本 keepRunning true 在你的情况下,这就是为什么看起来“6”不起作用;)

    Boolean keepRunning = true;
    while (keepRunning == true)
    {
        string input = Console.ReadLine();
    
        if (input == "1")
        {
            Console.WriteLine("Still running");
        }
        else if (input == "2")
        {
            Console.WriteLine("Still running2");
        }
        else if (input == "3")
        {
            Console.WriteLine("Still running3");
        }
        else if (input == "4")
        {
            Console.WriteLine("Still running4");
        }
        else if (input == "5")
        {
            Console.WriteLine("Still running5");
        }
        else if (input == "6")
        {
            keepRunning = false;
        }
    }
    

    switch(input)
    {
        case "1":
            Console.WriteLine("Still running");
            break;
        case "2":
            Console.WriteLine("Still running");
            break;
        case "3":
            Console.WriteLine("Still running");
            break;
        case "4":
            Console.WriteLine("Still running");
            break;
        case "5":
            Console.WriteLine("Still running");
            break;
        case "6":
            keepRunning = false;
            break;
        default:
            break;
    }
    
        2
  •  0
  •   Samvel Petrosov    7 年前

    每次迭代只能读一次行。见下例:

    string readLine = "";
    Boolean keepRunning = true;
    while (keepRunning)
    {
        readLine= Console.ReadLine();
        switch readLine{
            case "1":
                Console.WriteLine("Still running");
                break;
            case "2":
                Console.WriteLine("Still running2");
                break;
            case "3":
                Console.WriteLine("Still running3");
                break;
            case "4":
                Console.WriteLine("Still running4");
                break;
            case "5":
                Console.WriteLine("Still running5");
                break;
            case "6":
                keepRunning = false;
                break;
        }
    }