如何打印一个数组,每行 10 个项目,共 20 行。然后我想跳到下一个数组并执行相同的操作。之后询问用户输入是否继续。
这是我的示例输出:
===================================== After Level 1 Merged ==========================================
{ 129 } { 133 } { 354 } { 425 } { 632 } { 779 } { 1067 } { 1126 } { 1185 } { 1306 }
{ 1373 } { 1384 } { 1472 } { 1607 } { 1731 } { 1756 } { 1854 } { 1907 } { 1982 } { 2029 }
{ 54 } { 225 } { 259 } { 426 } { 449 } { 683 } { 728 } { 911 } { 920 } { 1009 }
{ 1056 } { 1266 } { 1288 } { 1323 } { 1404 } { 1666 } { 1848 } { 1912 } { 1968 } { 1970 }
{ 1997 } { 2021 }
===================================== After Level 2 Merged ==========================================
{ 54 } { 129 } { 133 } { 225 } { 259 } { 354 } { 425 } { 426 } { 449 } { 632 }
{ 683 } { 728 } { 779 } { 911 } { 920 } { 1009 } { 1056 } { 1067 } { 1126 } { 1185 }
{ 1266 } { 1288 } { 1306 } { 1323 } { 1373 } { 1384 } { 1404 } { 1472 } { 1607 } { 1666 }
{ 1731 } { 1756 } { 1848 } { 1854 } { 1907 } { 1912 } { 1968 } { 1970 } { 1982 } { 1997 }
{ 2021 } { 2029 }
这是我的代码:
System.out.printf("\nmy header \n\n", MemberConstant.MERGERSEC);
for (int i = 0; i < K; i++) {
for (int j = brds[i].start; j < brds[i].size + brds[i].start; j++) {
System.out.printf(" {");
System.out.printf("%6d ", a[j]);
cnt1++;
System.out.printf("}");
if(cnt1 == 10) {
System.out.printf("\n");
mod2++;
cnt1=0;
}
}
}
cnt1=0;
System.out.printf("my header\n\n", MemberConstant.MERGERSEC2);
for (int k = 0; k < K; k++) {
for (int l = brds[k].start; l < brds[k].size + brds[k].start; l++) {
System.out.printf(" {");
System.out.printf("%6d ", b[l]);
cnt1++;
System.out.printf("}");
if(cnt1 == 10) {
System.out.printf("\n");
mod2++;
cnt1=0;
}
}
}
最佳答案
我认为你应该有一个单独的方法来打印数组和另一个询问用户的周期。像这样的事情:
private int printArr(ArrayType a, int start, int rows) {
rows = Math.min(rows, a.length - start);
cnt1 = 0;
for (int i = start; i < rows; i++) {
for (int j = brds[i].start; j < brds[i].size + brds[i].start; j++) {
System.out.printf(" {");
System.out.printf("%6d ", a[j]);
cnt1++;
System.out.printf("}");
if(cnt1 == 10) {
System.out.printf("\n");
mod2++;
cnt1=0;
}
}
}
return start + rows; // current position
}
对于询问用户:
int aStart = 0;
int bStart = 0;
int rows = 20;
do {
aStart = printArr(a, aStart, rows);
bStart = printArr(b, bStart, rows);
// Ask user somehow
} while (//User wants to continue);
假设 brds
和 mod2
也在某处声明
关于java - 在 for 循环和数组 printint 之间切换。 java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42570697/