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

发布于 2022-09-12 13:04:30 字数 694 浏览 12 评论 0

image.png

如图代码:

任务A、任务B、任务C

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

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

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

问题来了:

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

image.png

image.png

image.png

大佬们,这要怎么解决啊

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

饮湿 2022-09-19 13:04:30

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文