
首先,在递归函数之外定义一个全局变量:isGo,布尔型,初始值为真,意思是可以继续循环。
接着,在递归循环的一开始就设置判断机制,一旦isGo的值为假,就层层阻止,直到退出所有层的循环,从而达到强制退出递归的目的。
if(isGo==false){ return }
最后,在递归的“满足条件”代码中增加如下语句:
isGo =false;
下面给出修改后的代码:
var isGo:Boolean=true
functionarr_all(pre:Array,nex:Array) {
if(isGo==false){return}
var j:uint=nex.length;
if (j==1) {
var t=[];
for (var i:uint=0;i<pre.length; i++) {
t.push(pre[i]);
}
t.push(nex[0]);
isGo =false;
returninfo.appendText("\n"+pc(t));//..out........
}
for (var k:uint=0; k<j; k++) {
var p:Array=pre.slice();
var s:Array=nex.slice();
p.push(s.splice(k,1));
arr_all(p,s);
}
}
Python教程学习网,免费的在线学习python平台,欢迎关注!
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试


































