黑马程序员技术交流社区

标题: 关于方法?? [打印本页]

作者: yllogininbh    时间: 2014-6-3 10:12
标题: 关于方法??
本帖最后由 yllogininbh 于 2014-6-6 11:09 编辑

当方法被调用完成后为什么程序知道执行方法调用程序的下一行?
作者: fhb19890110    时间: 2014-6-4 23:24
不知道  太深奥了
作者: /fendou    时间: 2014-6-5 13:21
也没明白楼主想问什么
作者: 邓明    时间: 2014-6-5 14:08
楼主贴段代码出来解释一下吧,大家都不清楚你的意思
作者: yllogininbh    时间: 2014-6-5 15:41
  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,为什么他知道返回呢?这就是我的问题
作者: Mekor    时间: 2014-6-5 15:44
yllogininbh 发表于 2014-6-5 15:41
main调用 func1 后func1 执行完成,返回main,为什么他知道返回呢?这就是我的问题 ...

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

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

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

作者: yllogininbh    时间: 2014-6-5 19:33
邓明 发表于 2014-6-5 19:26
赞同6楼的意见,在Main方法中调用了其他方法,除非是中断程序运行或者出错,在该方法运行完之后都会返回Ma ...

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


如同你刚才贴到帖子里的代码,实际是等同于上面这一段的,从上逐行运行下来,自然会是在调用方法之后的那一行继续了,无论调用多少次都是这样的结果。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2