我遇到了这个循环的逻辑问题。
a[5] = {1, 2, 3, 4, 5}
b[3] = {6, 7, 8}
c[3] = {9, 10, 11}
d[3] = {12, 13, 14}
这就是我要做的事情:
1, 6, 9, 12
1, 6, 9, 13
1, 6, 9, 14
1, 6, 10, 12
1, 6, 10, 13
...等
我在另一个中有4个for循环,但这似乎不起作用。任何人都可以帮助我吗?
for (int i = 0; i < 5; i++) {
System.out.print(a[i]);
for (int j = 0; j < 3; j++) {
System.out.print(b[j]);
for (int k = 0; k < 3; k++) {
System.out.print(c[k]);
for (int m = 0; m < 3; m++) {
System.out.print(d[m]);
System.out.println();
}
}
}
}
答案 0 :(得分:1)
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 3; j++) {
for (int k = 0; k < 3; k++) {
for (int m = 0; m < 3; m++) {
System.out.print(a[i]);
System.out.print(b[j]);
System.out.print(c[k]);
System.out.print(d[m]);
System.out.println();
}
}
}
}
只是一个逻辑问题。您希望在每次迭代期间显示a,b和c数组值,因此这样做。 我真的没有用Java编写代码,所以我的synthax可能是错误的,但我认为逻辑是关键的。
答案 1 :(得分:0)
您可以使用以下代码:
public static void main(String[] args){
int [] a = {1, 2, 3, 4, 5};
int [] b = {6, 7, 8};
int [] c = {9, 10, 11};
int [] d = {12, 13, 14};
for(int i =0; i < a.length; i++) {
for(int j =0; j < b.length; j++){
for(int l =0; l < c.length; l++) {
for(int m =0; m < d.length; m++) {
System.out.printf("%d, %d, %d, %d\n",a[i],b[j],c[l],d[m]);
}
}
}
}
}
您可以尝试Ideone