在每行上打印一个包含10个元素的数组元素

我刚刚创建了一个包含100个初始化值的数组,我想在每行打印出10个元素,所以它会像这样

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...26 

这是我使用的代码,我设法为前10个元素做了但我无法弄清楚如何做其余的

 public static void main(String[] args) { int[] numbers = { 0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17}; int i, count = 0; for (i = 0; i < numbers.length; i++) { System.out.print(numbers[i] + " "); count++; if (count == 9) for (i = 9; i < numbers.length; i++) System.out.println(numbers[i] + " "); } } 

  int[] numbers = new int[100]; for (int i = 0; i < numbers.length; i++) { if (i % 10 == 0 && i > 0) { System.out.println(); } System.out.print(numbers[i] + " "); } 

这会在打印numbers[i]之前打印换行符,其中i % 10 == 0i > 0%是mod运算符; 如果i / 10它返回余数。 所以当i % 10 == 0 i = 0, 10, 20, ...时, i % 10 == 0 i = 0, 10, 20, ...


至于你的原始代码,你可以通过一些修改使它工作如下:

 int count = 0; for (int i = 0; i < numbers.length; i++) { System.out.print(numbers[i] + " "); count++; if (count == 10) { System.out.println(); count = 0; } } 

基本上, count是您在此行中打印的数字。 一旦达到10,就打印换行符,然后将其重置为0 ,因为您正在开始一个新行,而对于该行,您还没有打印任何数字(尚未)。


请注意,在上述两种解决方案中,每行末尾都会打印一个额外的空间。 这是一个更灵活的实现,只在必要时才使用分隔符(水平和垂直)。 它只是稍微复杂一些。

 static void print(int[] arr, int W, String hSep, String vSep) { for (int i = 0; i < arr.length; i++) { String sep = (i % W != 0) ? hSep : (i > 0) ? vSep : ""; System.out.print(sep + arr[i]); } System.out.println(vSep); } 

如果你这样说,就像print(new int[25], 5, ",", ".\n"); ,然后它将打印25个零,每行5个。 在每一行的末尾有一个句点( . ),在一行的零之间有一个逗号( , )。

为什么你使用2个嵌套循环,你只需要记住输出换行符所需的位置? 对两个循环使用相同的变量i也不会达到预期效果。

怎么样:

 for (i = 0; i < numbers.length; i++) { System.out.print(numbers[i] + " "); count++; if (count == 10) System.out.print("\n"); count = 0; } } 

您所要做的就是在每十个数字后打印一个换行符。

 for (i = 0; i < numbers.length; ++i) { System.out.print(number[i]); if (i % 10 == 9) { System.out.println(); } else { System.out.print(" "); } }