我刚创建了一个包含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] + " ");
}
}
答案 0 :(得分:5)
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 == 0
和i > 0
之前打印换行符。 %
是mod运算符;如果i / 10
,则返回余数。 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个。每行末尾有一个句点(.
),一行中有一个逗号(,
)。
答案 1 :(得分:3)
为什么你使用2个嵌套循环,你只需要记住输出换行符所需的位置?对两个循环使用相同的变量i
也不会达到预期效果。
怎么样:
for (i = 0; i < numbers.length; i++) {
System.out.print(numbers[i] + " ");
count++;
if (count == 10)
System.out.print("\n");
count = 0;
}
}
答案 2 :(得分:1)
您要做的就是每十个数字后打印一个换行符。
for (i = 0; i < numbers.length; ++i)
{
System.out.print(number[i]);
if (i % 10 == 9)
{
System.out.println();
}
else
{
System.out.print(" ");
}
}