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] + " ");
}
Dies druckt einen Zeilenumbruch vor dem Ausdruck numbers[i]
où i % 10 == 0
y i > 0
. %
ist der Mod-Operator; er gibt den Rest zurück, wenn i / 10
. Also i % 10 == 0
wenn i = 0, 10, 20, ...
.
Was Ihren ursprünglichen Code betrifft, so können Sie ihn mit einer kleinen Änderung wie folgt zum Laufen bringen:
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;
}
}
Im Grunde genommen, count
ist, wie viele Zahlen Sie in dieser Zeile gedruckt haben. Sobald die Zahl 10 erreicht ist, wird ein Zeilenumbruch gedruckt, und dann wieder auf 0 zurücksetzen denn Sie beginnen eine neue Zeile, und für diese Zeile haben Sie (noch) keine Zahlen gedruckt.
Beachten Sie, dass in den beiden obigen Lösungen am Ende jeder Zeile ein zusätzliches Leerzeichen gedruckt wird. Hier ist eine flexiblere Implementierung, die nur bei Bedarf Trennzeichen (horizontal und vertikal) verwendet. Es ist nur leicht komplizierter.
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);
}
Wenn Sie dies sagen, wie print(new int[25], 5, ",", ".\n");
, dann werden 25 Nullen gedruckt, 5 in jeder Zeile. Es gibt einen Punkt ( .
) am Ende jeder Zeile, und ein Komma ( ,
) zwischen Nullen auf einer Linie.