我尝试使用谷歌搜索StackOverflow我的问题,但我没有找到任何答案。
我制作了一个数组,其中大小和值都是随机生成的。当数组值打印20次后,我想进行换行,但不使用始终换行打印剩余值。
这是我的代码:
public static void catArr() {
Random rändöm = new Random();
int size = rändöm.nextInt(100);
int[] arr = new int[size];
for (int i = 0; i < size; i++) {
arr[i] = rändöm.nextInt(100);
}
Arrays.sort(arr);
for (int i = 0; i < size; i++) {
System.out.print(" " + arr[i]);
if (i > 20)
System.out.println(); //How to do this only once?
else if (i > 40)
System.out.println(); //Same here?
}
}
这是生成的输出之一:
3 8 10 25 30 31 34 38 46 50 55 59 62 66 67 68 68 68 72 76 76 81
82
83
84
86
91
92
93
94
94
97
我认为解决这个问题的一种方法是使用2-D数组,但我想知道是否还有其他方法。
谢谢Patric,我得到了想要的结果:
0 2 3 7 7 9 11 14 14 16 18 19 24 25 26 28 28 30 30 31
31 33 33 34 41 41 41 42 43 44 45 46 51 51 52 53 59 60 61 62
62 62 63 65 65 67 67 68 69 70 74 74 76 78 82 83 84 84 87 88
89 93 93 94 94 94 95
答案 0 :(得分:6)
尝试使用
if ( ( i % 20 ) == 0 ){
System.out.println();
}
如果我除以20则没有余数,则打印一个新行!
答案 1 :(得分:1)
从字面上看,这将做你想要的事情:
if (i == 20)
System.out.println();
else if (i == 40)
System.out.println();
但我觉得你真的想在20日,40日,60日之后添加换行符等。
if (i % 20 == 0)
System.out.println();
如果你想在结尾只输出一个换行符,那么你需要这样的东西:
for (int i = 0; i < size; i++) {
if (i > 1 && i % 20 == 1) {
System.out.println();
System.out.print(" " + arr[i]);
}
System.out.println();
答案 2 :(得分:1)
也许
if (i % 20==0)
如果出现问题,可以解决你的问题。
答案 3 :(得分:1)
使用(++i % 20) == 0
并从循环中删除i++
; 预增量避免第一次不需要的换行。
答案 4 :(得分:0)
您可以使用布尔值为您的系统输出。
boolean myBoolean = true;
if(myBoolean){
//print
myBoolean = false; //set boolean to false.
}
另一方面,在我的偏好中,我仍然坚持使用整数标记。
int isTrue = 1;
if(isTrue == 1){
//print
isTrue = 0;
}