2014-11-02 100 views
-1

我需要幫助打印數組,我需要每行打印6個項目並切換到第七個和後續數字的下一行。還有誰會將數字輸入數組而不定義輸入多少個數字?在特定行上打印數組

import java.util.Scanner; 

public class NumberArray 
{ 
    public static void main(String[] args) 
    { 
     Scanner input = new Scanner(System.in); 
     System.out.println("How many grades do you want to enter?"); 
     int num = input.nextInt(); 
     int array[] = new int[num]; 
     System.out.println("Enter the " + num + " grades now."); 
     for (int grades = 0 ; grades < array.length; grades++) 
     { 
      array[grades] = input.nextInt(); 
     } 
     System.out.println("These are the grades you have entered."); 
     printArray(array); 
    } 

    public static void printArray(int arr[]) 
    { 
     int n = arr.length; 
     for (int i = 0; i < n; i++) { 
      System.out.print(arr[i] + " \t"); 
     } 
    } 
} 
+0

如果你想看看你是否在第7行,只需檢查你的迭代器是否爲7.如果你想看看你是否在7的倍數,然後測試modula(%)7 == 0 – Chris 2014-11-02 22:24:09

+0

println會打印並進入下一行,打印將不會...(除非您打印回車) – Chris 2014-11-02 22:24:25

回答

1

我需要幫助印刷陣列,我需要打印6個項目,每行並切換到下一行的第七和下面的數字。

從這個問題,似乎表明你所要的輸出是這樣的:

1 2 3 4 5 6 
7 8 9 ... n 

這可以很簡單地實現。

選項1 - 經典的if語句

for(int x = 0; x < array.length; x++) { 
    System.out.print(array[x]); 

    if(x == 5) { 
     // 5 because we're counting from 0! 
     System.out.println(); 
    } 
} 

選項2 - 使用三元運算符,以保持它在一行

注意:這是或多或少相同。在這些答案中完成是很好的。

for(int x = 0; x < array.length; x++) { 
    System.out.print(array[x] + x == 5? "\n":""); 
} 

編輯

如果你的意思是,你要6個項目在每一行,像這樣:

1 2 3 4 5 6 
7 8 9 10 11 12 
... 

然後你可以使用%(模運算符)打印出來每個輸出都有一條新的線。這實際上很容易改變,但是您需要確保在輸出內容之前檢查之前的值。這可以在this IDEOne中顯示。

0

使用模運算符(%)突破到一個新的一行行:

public static void printArray(int arr[]) 
{ 
    int n = arr.length; 
    for (int i = 0; i < n; i++) { 
     if(i % 6 == 0) // if you don't want the initial newline, check for i > 0 
      System.out.println() 
     System.out.print(arr[i] + " \t"); 
    } 
} 

你也可以使用printf()方法格式化線;這可能是更好的:

System.out.printf("%5d", arr[i]); 

之所以這樣比較好,是因爲你可以在輸出格式很容易地給特定的理由,列寬等,這將讓你的輸出更好看。