2013-01-24 56 views
0

這裏我需要編寫一個方法printArray,顯示數組的內容num並顯示數組的內容,每個數字由 之間用空格隔開。而且我必須在每20個元素之後開始一條新線。java顯示方法

我寫了這個代碼,但每當我試着執行它時,它顯示沒有新的生產線

public class project2 { 

    public static void main(String[] args) { 

     int num []= new int [100]; 

     for (int i=0;i<num.length;i++){ 

      num[i]=-1; 
      num[7]=7; 
     } 


     printArray(num); 
     System.out.println(num); 


    } 

    public static void printArray (int array1[]){ 

     int count =20; 
     for (int x=0;x<array1.length;x++){ 

      System.out.print(array1[x]+" "); 
      if (array1[x]==count){ 

       System.out.println(" "); 
       count=array1[x]+count; 

      } 

     } 
    } 
} 
+0

而不是20第一次去的3和解決它在你的頭上。你知道模運算符'%'嗎? –

回答

0

您應該使用模(或餘數)運算符(%),適合您的使用情況要好得多:

for (int x=0;x<array1.length;x++){ 
    System.out.print(array1[x]+" "); 
    if (x>0 && (x%count)==0){ 
     System.out.println(" "); 
    } 

} 

這樣一來,你會得到一個新的生產線每count字符,第一行不會有它(這就是爲什麼x>0檢查在那裏)。

此外,在原崗位,這條線是完全坦白壞:

count=array1[x]+count; 

只是那會是什麼?爲什麼要將存儲在數組中的添加到固定計數器?考慮到這一點,我建議你應該坐下來休息一下,然後試着想想背景是如何工作的......沒有魔法!

0

問題是
if (array1[x]==count)
你與目前在陣列值進行比較count數組。相反,將其與期望的計數進行比較,即20或使用模運算符,如其他答案/註釋中所建議的那樣。

int count = 1; 
for (int x=0;x<array1.length;x++){ 

    System.out.print(array1[x]+" "); 

    if (count == 20){ // Check if its 20th element 
     System.out.println(" "); 
     count=1; // reset count 
    } 
    count++; 
} 
0

再仔細看看你的if語句:

if (array1[x]==count) 

根據您的數組值,這將永遠不會返回true

0

我在每天20元后,開始一個新行。

更改爲下面的代碼:

if (x%20 == 0) 
{ 
    System.out.println(); 
} 

到位

if (array1[x]==count) 
{ 
    System.out.println(" "); 
    count=array1[x]+count; 
} 
1
import java.util.Arrays; 
import java.util.Random; 

public class project2 { 

    public static void main(String[] args) { 

    int num[] = new int[100]; 

    Random random = new Random(); 
    for (int i = 0; i < num.length; i++) { 

     num[i] = random.nextInt(100); 
    } 


    printArray(num); 

    System.out.println('\n' + Arrays.toString(num)); 
    } 

    public static void printArray(int array1[]) { 

    int count = 20; 
    for (int i = 0; i < array1.length; i++) { 

     System.out.printf("%2d ", array1[i]); 
     if ((i + 1) % count == 0) { 

     System.out.println(""); 
     } 

    } 
    } 
}