A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 邢凯 中级黑马   /  2014-8-2 10:59  /  1503 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 邢凯 于 2014-8-3 11:22 编辑

在方法中的return值怎么体现在使用中


  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;

  5. namespace 异常
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             Console.WriteLine("请输入你的年龄");
  12.             int age1 = int.Parse(Console.ReadLine());
  13.             try
  14.             {
  15.                 string desc = GetAgeDesc(age1);
  16.                
  17.             }
  18.             catch(Exception ex)
  19.             {
  20.                 Console.WriteLine("数据错误+"+ex.Message);
  21.             }
  22.             Console.ReadKey();
  23.         }
  24.         static string GetAgeDesc(int age)
  25.         {
  26.             if (age >= 0 && age <= 10)
  27.             {
  28.                 return "婴幼儿";
  29.             }
  30.             else if (age > 10 && age < 18)
  31.             {
  32.                 return "青少年";
  33.             }
  34.             else if (age >= 18 && age < 150)
  35.             {
  36.                 return "成年人";
  37.             }
  38.             else if (age < 0)
  39.             {
  40.                 throw new Exception("您来自反物质世界吧");
  41.             }
  42.             else
  43.             {
  44.                 throw new Exception("您见过老佛爷吧");
  45.             }
  46.         }
  47.     }

  48. }
复制代码


这个是看视频自己写的 我想的是 自己输入一个年龄数字,然后返回得到我下面方法里面的东西,求大伙帮帮忙,我是个小白{:3_63:}    在请大伙教教我,这个return  的使用,我感觉我还是弄的不是很清楚  谢谢啦

评分

参与人数 1技术分 +1 收起 理由
陈君 + 1

查看全部评分

9 个回复

倒序浏览
感觉try中应该是int age1 = int.Parse(Console.ReadLine());   因为这句话可能会转换失败,报异常。

return就是方法的返回值,返回值类型就是你写方法的时候定义的,static string GetAgeDesc(int age)
static静态,string返回值类型为string类型,GetAgeDesc方法名,int age参数。定义了方法有返回值,并且类型为string,那么在主函数中调用方法,可以定义一个string类型的变量来接收这个方法的返回值。就像string desc = GetAgeDesc(age1);

你的代码try那有点小问题,其他都可以啊。应该可以实现。

评分

参与人数 1技术分 +1 收起 理由
陈君 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 xinghua 于 2014-8-2 12:16 编辑

同上楼所述,但是我发现还有一个问题,如下面我修改你的代码标记的地方

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 异常
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入你的年龄");       //这句是极易转换不成功出异常的,所以放在try中
            //int age1 = int.Parse(Console.ReadLine());
            try
            {
                int age1 = int.Parse(Console.ReadLine());
                string desc = GetAgeDesc(age1);
           }
            catch(Exception ex)
            {
                Console.WriteLine("数据错误+"+ex.Message);
            }

            Console.WriteLine(desc);   //最后经过GetAgeDesc()方法返回的数据输出显示就好了
            Console.ReadKey();
        }
        static string GetAgeDesc(int age)
        {
            if (age >= 0 && age <= 10)
            {
                return "婴幼儿";
            }
            else if (age > 10 && age < 18)
            {
                return "青少年";
            }
            else if (age >= 18 && age < 150)
            {
                return "成年人";
            }
            else if (age < 0)
            {
                throw new Exception("您来自反物质世界吧");
            }
            else
            {
                throw new Exception("您见过老佛爷吧");
            }
        }
    }

}

评分

参与人数 1技术分 +1 收起 理由
陈君 + 1

查看全部评分

回复 使用道具 举报
xinghua 发表于 2014-8-2 12:11
同上楼所述,但是我发现还有一个问题,如下面我修改你的代码标记的地方

using System;

谢谢,我看懂了你的代码,虽然我自己后面也修改了一下,但是没有你的这个简便,谢谢
回复 使用道具 举报
qsq0000hm 发表于 2014-8-2 11:52
感觉try中应该是int age1 = int.Parse(Console.ReadLine());   因为这句话可能会转换失败,报异常。

retur ...

我发现我的问题在哪了,谢谢
回复 使用道具 举报
邢凯 发表于 2014-8-2 12:33
谢谢,我看懂了你的代码,虽然我自己后面也修改了一下,但是没有你的这个简便,谢谢 ...

不用谢的,大家多多交流!
回复 使用道具 举报
你已经把你需要的做完了呀,就差一个输出到屏幕了。不过你这程序有点小问题哦,int age = int.Parse(Console.ReadLine());
这一行代码应该放在try块中。
回复 使用道具 举报
又学到了一点东西了 很不错啊!!!!
回复 使用道具 举报
这个板块帖子好少
回复 使用道具 举报
学到了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马