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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© swon13 中级黑马   /  2014-10-24 14:53  /  3294 人查看  /  22 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

例如,有函数A(), B()
在A()中调用了B(), B()中又调用了A()。
这种调用会陷入无限循环,但在语法上可以通过吗?

评分

参与人数 1技术分 +1 收起 理由
敏敏好学 + 1

查看全部评分

22 个回复

倒序浏览
Demo一下呗
回复 使用道具 举报
应该可以的
回复 使用道具 举报
应该是不可以。
回复 使用道具 举报
相互调用是可以的,只是运行起来会让堆内存溢出
回复 使用道具 举报
这完全可以自己试一下
回复 使用道具 举报
相互调用应该是可以的,但是两个函数相互调用之后他俩玩起来了,内存受不鸟了...
回复 使用道具 举报
语法上可以通过
回复 使用道具 举报
可以的,的确会形成死循环,但是递归算法就是用的这个方式,只要控制好条件就好了。
比如可以在给函数传递一个参数,用来确定递归的层次,每进入一层递归就减去一,当传入参数为0时return。
回复 使用道具 举报
这个是可以实现的,你可以试试两个函数中互相调用各自的循环部分,这样就可以实现死循环!
回复 使用道具 举报
可以的,控制好,别整成死循环就行
回复 使用道具 举报
可以的。
回复 使用道具 举报
noiary 高级黑马 2014-10-24 23:13:46
13#
  1. /*
  2. 测试两个函数互相调用是否可行
  3. */

  4. public class Demo {

  5.         public static void main(String[] args) {
  6.                 method_1();
  7.         }
  8.        
  9.         public static void method_1() {
  10.                 System.out.println("method_1");
  11.                 method_2();
  12.         }
  13.        
  14.         public static void method_2() {
  15.                 System.out.println("method_2");
  16.                 method_1();
  17.         }
  18.        
  19. }
复制代码


打印结果开始时是死循环,跑一会就会出现:

  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
  at Demo.method_2(Demo.java:18)
  at Demo.method_1(Demo.java:13)
回复 使用道具 举报
理论上是行得通,但感觉这种情况,没有多大实际操作价值吧?
回复 使用道具 举报
郑飞 高级黑马 2014-10-25 00:26:31
15#
可以的 我矩阵打印连续数字就是这么搞得
回复 使用道具 举报
嗯,这个问题问的好,学习了
回复 使用道具 举报
可以,但要加上条件限制。比如在A中加上条件,并且调用B。在B中判断条件,满足则进行某项操作,不满足则调用A。可用函数的相互调用实现另类的循环
回复 使用道具 举报
韶山 高级黑马 2014-10-26 08:30:51
18#
可以,但是会卡死的
回复 使用道具 举报
这个是可以的,你等着死循环就是了,最好加些结束的条件啦
回复 使用道具 举报
可以的,编译时没有问题,但是运行时死循环
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马