2017-03-03 25 views
0

如何在20行中打印每行10個項目。然後我想跳到下一個數組並執行相同的操作。之後,要求用戶輸入是否繼續。在for循環之間切換數組printint。 Java

下面是一個示例輸出,我有:

===================================== 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; 

      } 

     } 
    } 

回答

1

我想你應該有印刷陣列的一個單獨的方法,另一個週期要求用戶。事情是這樣的:

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); 

假設brdsmod2還宣佈某處