我想在第 10 个数组之后输入一个新行。我的数组从 1-365 (day[0]=1, day[1]=2, ..)
填充。
这是我的代码,我坚持创建if-condition
:
int day[] = new int[365];
for(int i=0; i<day.length; i++){
day[i] = i+1;
System.out.print(day[i]+" ");
if((i % 10) == 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 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 ...
我得到的:
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 26 27 28 29 30 31
32 33 34 35 36 37 38 39 40 41
42 43 44 45 46 47 48 49 50 51
将您的条件更改为:
if(((i+1) % 10) == 0){
System.out.println();
}
您正在打印i+1
,因此您希望在i+1
可被 10 整除时添加换行符。
您也可以跳过使用数组并像这样打印:
public static void main(String[] args) {
for (int i = 0; i < 365; ++i) {
System.out.format("%3d ", i + 1);
if ((i + 1) % 10 == 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 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100
101 102 103 104 105 106 107 108 109 110
....
这是因为数组索引从 0 开始。所以你认为第 10 个字符,对于 Java 来说,是第 9 个字符(第一个是第 0 个字符)。
改为选中((i + 1) % 10)
。
或者,您可以检查 day[i]
的实际值,因为您已经将其设置为 i + 1
。
这将是
您的解决方案,例如:如果您不理解它,请使您的示例更容易:
public static void main(String[] args){
System.out.println("This would be your solution:");
int day[] = new int[365];
for (int i = 0; i < 365; i++) {
day[i]=i+1;
//System.out.print(day[i]);
}
for (int i = 0; i < day.length; i++) {
int j = day[i];
System.out.print(j+" ");
if(j%10==0){
System.out.println();
}
}
}
试试这个
int day[] = new int[365];
for(int i=1; i<day.length; i++){
day[i-1] = i;
System.out.print(day[i-1]+" ");
if((i % 10) == 0){
System.out.println();
}
if(i==day.length-1){
day[i] = i+1;
System.out.print(day[i]+" ");
}
}
输出
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 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
.......