public static int x = 0;
public static int y = 0;public static void ss() {
x = y;
y++;
for(h[x]=0;h[x]<sz[x].length;h[x]++) {
if(x == 2) { // 等于2 只是举个例子,即有3个for循环;
System.out.println("==========:"+g);
g++;
}else {
ss(); // 递归
}
}
}现在的问题是,递归完后,只程序只执行了最后一个for ,假设每个数组的长度定为3,那么,输出时,应该是 3*3*3 ,得27条输出语句,但现在只有3条, 也就是,程序只走了最后一个循环,前面的两个循环没执行,请各位指教,是逻辑出问题了吗?
public static int y = 0;public static void ss() {
x = y;
y++;
for(h[x]=0;h[x]<sz[x].length;h[x]++) {
if(x == 2) { // 等于2 只是举个例子,即有3个for循环;
System.out.println("==========:"+g);
g++;
}else {
ss(); // 递归
}
}
}现在的问题是,递归完后,只程序只执行了最后一个for ,假设每个数组的长度定为3,那么,输出时,应该是 3*3*3 ,得27条输出语句,但现在只有3条, 也就是,程序只走了最后一个循环,前面的两个循环没执行,请各位指教,是逻辑出问题了吗?
这句没看懂,你实际的代码就是这样么?
然后x=1,y=2,再走ss,这时候x=2,走if,就打印一条改正嘛,你这逻辑我没看懂,不知道你要干啥,你说清楚点,我再帮你看
然后x=1,y=2,再走ss,这时候x=2,走if,就打印一条 改正嘛,你这逻辑我没看懂,不知道你要干啥,你说清楚点,我再帮你看
for 0
for 1
for 2 有3个循环的话,那么它的输出,应该是3个循环的乘积,每个for 的是个数组,假设每个数组的长度是3,
那么输出的,应该是 3*3*3 条记录,现在输出的,只有3条记录,也就是只执行了最后一个for ,想问的问题就是在这,为什么前两个 for 没被执行??
for 数组2
for 数组3
// 写输出语句,最终,应该得到,3*3*3条输出语句!