for循环与递归之间的嵌套调用问题,如何跳出递归链

image.png

如图代码:

任务A、任务B、任务C

C的前置任务是B,
B的前置任务是A,
如果把A的前置任务设置为C,
那么就进入了一个死循环。前置任务的意思是:要想启动当前任务,必须处理掉在它之前的任务,形成一条上下级的任务链。

现在,我们不能让任务链成为死链,要不然都无法启动。

这个方法可以理解为,传入前端发送过来的前置任务IDlist、当前任务的ID,然后不断通过递归去查找前置任务表中是否含有当前任务的id,因为任务的层级链可能很长,所以要一直查到查出来的集合为空,那么就代表,这些前置任务是可选的,否则,就是不可选,上层抛出异常。

问题来了:

如何去跳出整个递归链,比如,找到的当前任务的id,那么直接终止这个for循环,而不是只是终止了当前递归层级,还会去执行下一个递归。
下面是Debug图

image.png

image.png

image.png

大佬们,这要怎么解决啊

阅读 3.6k
1 个回答

修改代码,直接在方法处理层级抛出异常,直接终止整个程序。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题