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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yllogininbh 中级黑马   /  2014-6-3 10:12  /  1395 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 yllogininbh 于 2014-6-6 11:09 编辑

当方法被调用完成后为什么程序知道执行方法调用程序的下一行?

11 个回复

倒序浏览
不知道  太深奥了
回复 使用道具 举报
也没明白楼主想问什么
回复 使用道具 举报
楼主贴段代码出来解释一下吧,大家都不清楚你的意思
回复 使用道具 举报
  1. main()
  2. {
  3. int a=1;
  4. fun1();
  5. int b=1;
  6. }
  7. func1()
  8. {
  9. int a=0;
  10. }
复制代码


main调用 func1 后func1 执行完成,返回main,为什么他知道返回呢?这就是我的问题
回复 使用道具 举报
yllogininbh 发表于 2014-6-5 15:41
main调用 func1 后func1 执行完成,返回main,为什么他知道返回呢?这就是我的问题 ...

因为main函数还没有执行完啊,面向过程是逐步向下,依次求精。所以main函数的最后一个大括号没执行完,他结束之后就还是继续执行main函数里面的
回复 使用道具 举报
请你把问题描述清楚,小一行什么意思?
回复 使用道具 举报
是" 下一行"  打错字了,我没注意到
回复 使用道具 举报
Mekor 发表于 2014-6-5 15:44
因为main函数还没有执行完啊,面向过程是逐步向下,依次求精。所以main函数的最后一个大括号没执行完,他 ...

但是他为什么知道要跳回去了?
回复 使用道具 举报
本帖最后由 邓明 于 2014-6-5 19:28 编辑
yllogininbh 发表于 2014-6-5 15:41
main调用 func1 后func1 执行完成,返回main,为什么他知道返回呢?这就是我的问题 ...

赞同6楼的意见,在Main方法中调用了其他方法,除非是中断程序运行或者出错,在该方法运行完之后都会返回Main方法继续向下执行的,否则后面的代码和大括号就失去意义了。所有的编程语言都是这样的,楼主要记得这个铁律。
同时你也可以把调用的其他方法看成Main方法的一段代码,执行完这一段之后它自然会继续向下执行。
回复 使用道具 举报
邓明 发表于 2014-6-5 19:26
赞同6楼的意见,在Main方法中调用了其他方法,除非是中断程序运行或者出错,在该方法运行完之后都会返回Ma ...

方法可以有很多个,可以互相调用很多次,方法执行完成后确实是大括号结束,可他为什么知道跳会被调用处的下一行呢,为什么不跳到其他地方去呢?
回复 使用道具 举报
yllogininbh 发表于 2014-6-5 19:33
方法可以有很多个,可以互相调用很多次,方法执行完成后确实是大括号结束,可他为什么知道跳会被调用处的下 ...
  1. main()
  2. {
  3. int a=1;
  4. {
  5. int a=0;
  6. }
  7. int b=1;
  8. }
复制代码


如同你刚才贴到帖子里的代码,实际是等同于上面这一段的,从上逐行运行下来,自然会是在调用方法之后的那一行继续了,无论调用多少次都是这样的结果。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马