namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
   
            try
            {
                string agedesc = GetAgeDsc(300);//这里传入150以上的值,就会出现正常的("您见过老佛爷吗?");,但是输入其它值,却出现一个黑屏,什么提示也不出现,是下面的if语句那个地方写错了呢?
            }
            catch(Exception ex)
            {
                Console.WriteLine("数据错误:" + ex.Message);
            }
            Console.ReadKey();
        }
        static string GetAgeDsc(int age)
        {            if(age > 0 && age <= 3)
            {
                return ("婴幼儿");
            }
            else if (age > 3 && age <= 18)
            {
                return ("青少年");
            }
            else if (age > 19 && age < 150)
            {
                return ("成年人");
            }            if (age < 0)
            {
                throw new Exception("您来自反物质世界吧?");
            }            else
            {
                throw new Exception("您见过老佛爷吗?");
            }        }
    }
}

解决方案 »

  1.   

    age 小于0的else 不就是大于等于0么
      

  2.   

    你其他的语句就没有输出,他不黑屏能给你显示什么啊
    把你的return改成Console.WriteLine吧
      

  3.   


    对,没有显示
    string agedesc = GetAgeDsc(300);
    Console.WriteLine(agedesc);
      

  4.   

    应该是在string agedesc = GetAgeDsc(300);这句后面加个输出 Console.WriteLine(agedesc );
      

  5.   

    去掉else,这里不需要,直接写成 if(age > 0 && age <= 3)
      {
      return ("婴幼儿");
      }
      if (age > 3 && age <= 18)
      {
      return ("青少年");
      }
      if (age > 19 && age < 150)
      {
      return ("成年人");
      }
      

  6.   

    谢谢大家,就是少了Console.WriteLine(agedesc);
    可是为什么传入300的时候可以显示呢,而不用Console.WriteLine(agedesc);语句
    但是其它却要这个语句?
      

  7.   


    是的,300抛出异常,并且异常被显示了:
     catch(Exception ex)
      {
      Console.WriteLine("数据错误:" + ex.Message);
      }
      Console.ReadKey();
      }