int a=0 ;
              int b=0;
              bool c = true;
              do
              {
                  try
                  {
                      Console.WriteLine("请输入一个数字");
                      a = Convert.ToInt32(Console.ReadLine());
                      Console.WriteLine("请输入二个数字");
                      b = Convert.ToInt32(Console.ReadLine());
                  }
                  catch
                  {
                      Console.WriteLine("你输入的不是数字,重新输入"); 
                  }
                  c = false;              }
              while (c);
            
            
          
            Console.WriteLine(a+b);
            Console.ReadKey();
        }
    }
}
要求用户输入两个数字 如果第一个是数字 第二个不是 提示用户输入第二数字 并输出两个数的和c#

解决方案 »

  1.   

      c = false;放在try里面
      

  2.   

    LZ这逻辑确实是有点乱,如果第一个输入的也不是数字,那准备怎么办呢
    bool firstWrong=false,secondWrong=false;
    int a=0,b=0;
    do
    {
      Console.WriteLine("输入第一个数字:");
      try
     {
        a=ConvertToInt32(Console.ReadLine());
        firstWrong=false;
      }
      catch
      {
         Console.WriteLine("数字格式不正确");
         firstWrong=true;
       }
    }whiel(firstWrong);do
    {
      Console.WriteLine("输入第二个数字:");
      try
     {
        a=ConvertToInt32(Console.ReadLine());
        secondWrong=false;
      }
      catch
      {
         Console.WriteLine("数字格式不正确");
         secondWrong=true;
       }
    }whiel(secondWrong);
    Console.WriteLine(a+b);
    Console.ReadKey();
      

  3.   

      c = false;放在try里面不就搞定了?  不是想要的int类型就从新循环?
      

  4.   

    反复看了几遍,没明白为什么要用do...while,又为什么定义C来循环????按原代码有可能循环执行的可能吗??
      

  5.   

    Quote: 引用 6 楼 leafmao 的回复:

    LZ这逻辑确实是有点乱,如果第一个输入的也不是数字,那准备怎么办呢
    C# code?123456789101112131415161718192021222324252627282930313233bool firstWrong=false,secondWrong=false;int a=0,b=0;do{  Console.WriteLine("输入第一个数字:……[/quo
    谢谢了