我是编程新手,如果我没有正确提出我的问题请耐心等待。我有一个创建程序的任务,将整数值1-25分配给25个元素的整数数组。我需要将数组打印为五个单独的行,每行包含5个以逗号分隔的元素。最后一个元素后面没有逗号。最终输出应如下:
1,2,3,4,5
6,7,8,9,10
11,12,13,14,15
16,17,18,19,20-
21,22,23,24,25
我提出的代码很接近,但它并不完全正确。我提出的代码是:
public class Test2 {
/**
* @param args
* the command line arguments
*/
public static void main(String[] args) {
int[] numbers = new int[25];
for (int i = 0; i < numbers.length; i++) {
numbers[i] = i + 1;
System.out.print(numbers[i] + ",");
if (i % 5 == 0 && i > 0)
System.out.println();
}
}
}
我从代码中获得的打印输出如下:
1,2,3,4,5,6,
7,8,9,10,11,
12,13,14,15,16,
17,18,19,20,21,
22,23,24,25,
我不知道为什么我在第一行获得1-6,以及如何删除每行末尾的逗号。任何指出我的错误的帮助将不胜感激。
答案 0 :(得分:1)
您在第一行收到6个号码,因为您从i=0
开始计算,并且仅在i=5
时打印换行符;您刚刚打印的数字是6,而不是5 - 您在每次迭代中打印i+1
。
如果你的逻辑使得它打印了逗号或换行而不是两者,那么你就可以删除行尾的逗号。
答案 1 :(得分:1)
你很亲密。 非常 关闭。
考虑你的条件正在检查 - 你想要检查一个值i
,并希望在该特定值可被5整除但是非零时停止。
问题是您的错误值 - i
不是您想要的,而是numbers[i]
。原因是:numbers[i]
中的每个数字都被i
偏移1。
您要做的是检查numbers[i]
是否可以被5整除。但您仍然需要检查非零i
。
if(numbers[i] % 5 == 0 && i > 0) {
System.out.println(numbers[i]);
} else {
System.out.print(numbers[i] + ",");
}
答案 2 :(得分:1)
错误是您正在检查int i是否可被5(i%5)整除,而不是数字[i](数字[i]%5)。这样,您的代码就会打印出来:
number 1 when i = 0,
number 2 when i = 1,
number 3 when i = 2,
number 4 when i = 3,
number 5 when i = 4,
number 6 when i = 5
最后打印换行符。
正确的代码是:
int[] numbers = new int[25];
for (int i = 0; i < numbers.length; i++) {
numbers[i]=i+1;
System.out.print(numbers[i]);
if (numbers[i] % 5 == 0 && i > 0) {
System.out.println();
} else {
System.out.print(",");
}
}
以上代码将打印(按预期):
1,2,3,4,5
6,7,8,9,10
11,12,13,14,15
16,17,18,19,20
21,22,23,24,25
答案 3 :(得分:0)
替换
if (i % 5 == 0 && i > 0)
与
if (i % 5 == 4)