题目:不断要求用户输入一个数字,然后打印这个数字的二倍,输入q结束下面是我写的程序,有个缺点只要是按任何字母都可以退出,大家帮我修改下,怎样才可以只有按q才退出啊。
 int input;
            bool flage = true;
            do
            {
                try
                {
                    Console.WriteLine("请输入一个数字,退出程序请输入q");
                    input = Convert.ToInt32(Console.ReadLine());
                    Console.WriteLine("{0}的二倍是{1}", input, input * 2);
                    flage = true;
                }
                catch
                {
                    flage = false;
                }
            } while (flage);
            Console.WriteLine("程序退出成功!!!");

解决方案 »

  1.   


    if (Console.ReadKey(false).Key == ConsoleKey.Q)
    {
    //退出

      

  2.   

    input = Convert.ToInt32(Console.ReadLine());
    =>
    string s = Console.ReadLine();
    if (s.ToLower() == "q") 
        break;
    else
        input = Convert.ToInt32(s);
      

  3.   


    上面这个朋友,你的这个代码,运行要报错,说方法组不能应用于与string类型
      

  4.   


                int input;
                bool flage = true;
                string k = string.Empty;
                do
                {
                    try
                    {
                        Console.WriteLine("请输入一个数字,退出程序请输入q");
                        k = Console.ReadLine();
                        input = Convert.ToInt32(k);
                        Console.WriteLine("{0}的二倍是{1}", input, input * 2);
                    }
                    catch
                    {
                        if (k.ToLower() == "q")
                        {
                            flage = false;
                        }
                        else
                        {
                            Console.WriteLine("输入字符不能转换为数字!");
                        }
                    }
                } while (flage);
                Console.WriteLine("程序退出成功!!!");
      

  5.   


                do
                {
                    Console.WriteLine("请输入一个数字,退出程序请输入q");
                    string str = Console.ReadLine();
                    if (str.ToLower() == "q")
                        break;
                    int input = 0;
                    if (int.TryParse(str, out input))
                    {
                        Console.WriteLine("{0}的二倍是{1}", input, input * 2);
                    }
                    else
                    {
                        Console.WriteLine("输入字符不能转换为数字!");
                    }
                } while (true);
                Console.WriteLine("程序退出成功!!!");象这样,逻辑,效率都要好点。
      

  6.   

    string input;
                int turnedInput;
                bool flage = true;
                do
                {
                    Console.WriteLine("请输入一个数字,退出程序请输入q");
                    input = Console.ReadLine();
                    if (int.TryParse(input, out turnedInput))
                        Console.WriteLine("{0}的二倍是{1}", turnedInput, turnedInput * 2);
                    else if (input.Equals("q"))
                        flage = false;
                }
                while (flage);
                {
                    Console.WriteLine("程序退出成功!!!");
                }