Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.2k views
in Technique[技术] by (71.8m points)

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

image.png

如图代码:

任务A、任务B、任务C

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

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

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

问题来了:

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

image.png

image.png

image.png

大佬们,这要怎么解决啊


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...