我需要帮助打印阵列,我需要每行打印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 :(得分: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 - 使用Ternary运算符将其保持在一行
注意:这或多或少相同。很高兴能够完成这些答案。
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中显示。
答案 1 :(得分: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]);
之所以更好,是因为您可以轻松地将输出格式化为特定的对齐方式,列宽等,这将使您的输出看起来更好。