js for循环问题,请高手指点指点,在此先谢过了

functionSudoku_Rnd(Num){varSumNum=newArray();for(varj=0;j<Num;j++){varNumArray=newArr... function Sudoku_Rnd(Num){
var SumNum = new Array();
for(var j=0;j<Num;j++){
var NumArray = new Array();
for(var i=0;i<Num;i++){
//if(j==1 && i==0)alert(SumNum[50])
var val = Math.ceil(Math.random()*Num);
var isEqu = false;
if(!isEqu){
for(var m=0;m<i;m++){
if(NumArray[m]==val){isEqu = true; break;};
};
};
if(val == 0 && !isEqu){isEqu = true; break;};
if(!isEqu){
for(var k=0;k<j;k++){
if(SumNum[Num*k+i]==val){isEqu = true; break;};
};
};
if(isEqu){
i--;
}
else{
NumArray[NumArray.length] = val;
};
};
for(var i=0;i<NumArray.length;i++){SumNum[SumNum.length] = NumArray[i];};
};
return SumNum;
};
Sudoku_Rnd(3)
我这里的for循环老是卡死,是不是循环次数太多了?要如何处理呢?
展开
 我来答
花花浪客
2013-11-27 · TA获得超过2069个赞
知道小有建树答主
回答量:792
采纳率:100%
帮助的人:716万
展开全部
你在这个循环:for(var i=0;i<Num;i++){

里面的这一步:
if(isEqu){
i--;
}
导致只要满足这个条件,i就陷入死循环,再也出不来了
追问
但是我一定要输出必须是9位数的数组,不减一如何满足9位数?
追答
我不清楚你的逻辑,所以只能说说我的想法,最简单的办法就是使用新的变量,比如再用一个i2,然后根据需要设置i2的值,而不是使用i,以避免破坏循环变量的值。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式