2014-11-02 61 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]); 

之所以这样比较好,是因为你可以在输出格式很容易地给特定的理由,列宽等,这将让你的输出更好看。