| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 671 人关注过本帖
标题:return之谜??
只看楼主 加入收藏
飞程淡定
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2013-4-4
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:5 
return之谜??
''程序遇到return后,会将执行流程交还给调用此方法的程序代码''中后面半句话是什么意思?此方法的程序代码是指那一部分?什么叫执行流程?
为什么非void类型的方法中一定有一个return?为什么void类型的方法,return可写可不写?
搜索更多相关主题的帖子: return 
2013-04-18 10:21
lantian8134
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:8
帖 子:115
专家分:789
注 册:2013-1-11
收藏
得分:1 
程序代码:
static void F()
    {
        if(true)
        {
            Console.WriteLine("开始执行return");
            return;
        }
        Console.WriteLine("这句代码永远执行不到");
        string s=ReturnString();
        Console.writeLine(s);
    }

static void Main(string[] args)
    {
        F();
        Console.WriteLine("执行完F方法中return语句,接下来就轮到我了");
    }
static string ReturnString()
    {
        return "我是最后输出的";
    }
void 关键字指定方法不返回值。所以return可写可不写。
其他都要带return语句。
2013-04-18 10:51
飞程淡定
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2013-4-4
收藏
得分:0 
回复 2楼 lantian8134
我知道路是怎么走的,可是你回答的不是我问的
2013-04-18 12:37
wanqiuyan08
Rank: 2
等 级:论坛游民
帖 子:12
专家分:30
注 册:2013-4-17
收藏
得分:0 
后半句“会将执行流程交还给调用此方法的程序代码”。例如:函数funA调用funB,当funB
遇到return时,程序就回到funA执行了。希望对你有所帮助。
2013-04-18 12:50
Aviva_Wang
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:苏州
等 级:贵宾
威 望:26
帖 子:701
专家分:2382
注 册:2013-3-12
收藏
得分:0 
你说的是循环中的return吧,那你比较一下break 应该容易理解一点

asp
2013-04-18 14:05
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:9 
我觉得新手学东西不是这样学的,写书的人是在用文字去解释一种现象,而读书的人,却想用文字去解释写书人的文字,原本很容易理解的一个东西,却变得很复杂
楼主在3楼中说,知道路的怎么走的,那表示完全可以解理return的含义,又何必纠结文字上说的是什么

以2楼代码为例,main方法调用F方法,当在F方法中遇到return时,F方法结束,程序接着F方法后面的代码执行

执行流程,就是程序从执行代码开始,到全部执行完需要执行的代码,这样一个过程,或者说这样的一个顺序

''程序遇到return后,会将执行流程交还给调用此方法的程序代码''??
程序一开始从main方法开始执行,首先遇到F方法,程序就开始执行F方法里面的代码,然后在F方法中遇到return,所以执行流程就回到main方法继续往下执行
这里的调用此方法的程序代码,此方法当然是指F方法,调用F方法的代码当然是指main方法中的代码,所以原本在F方法中执行代码的这样一个流程,在遇到return以后,流程回到main方法,继续执行main方法的代码

为什么非void类型的方法中一定有一个return?
return代表返回,非void类型,就表示该方法需要一个返回值.例如我让你去做一件事,并且我需要得到一个结果,你必须要给我一个答复,你就需要通过return把答复返回给我

为什么void类型的方法,return可写可不写?
void类型表示不需要返回值, 所以return可以不用,用return的目的在于结束此方法
例如,你想要知道你爸爸的生日,程序的执行流程是,你先问你妈妈,然后再问你爸爸,当你从妈妈那里问到结果以后,就不需要再问你爸爸了,所以可以return,表示程序结束了,如果不写return,程序继续,那你就再问你爸爸,问完以后程序结束

如果是非void的方法
同样用上面的例子,但是这是非void方法,所以我需要你的结果,你问完妈妈以后,可以通过return把结果告诉我,当然你也可以不在这里return,然后你继续问你爸爸,问完以后程序结束了,但是我仍然需要结果,所以你问完爸爸以后,还是需要通过return把结果告诉我
2013-04-18 15:09
快速回复:return之谜??
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.110580 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved