Java nacheinander in Zeilen schreiben?

5 Antworten

Einfach mit dem erwähnten "\n"

System.out.print(zahlen1 + "\n" + zahlen2 +"\n" + ...) 

oder in deiner Schleife jeweils System.out.println aufrufen. Ich weiß allerdings nicht genau, was du gemacht hast..

for (...) {
  System.out.println("Zeile" +variable);
}
Woher ich das weiß:Studium / Ausbildung – Studium in theoretischer Informatik (Master)
menschRaus 
Fragesteller
 23.07.2021, 13:23

Ich füge mal mein Code ein, vielleicht liegt da der Fehler:

for (int i = 1; i <= 10; i++) {
    System.out.print(" " + i);
}
for (int b = 2; b <= 20; b += 2) {
    System.out.print(b);

Die erste Zeile wird wie gewollt ausgegeben, die Zweite so:

2

4

6

..

möchte sie aber gerne so: 2 4 6 ..

0
GrakaVII  23.07.2021, 13:27
@menschRaus

Also eigentlich sollte dein Code genauso funktionieren, wie du das möchtest.

for (int i = 1; i <= 10; i++) {
    System.out.print(" " + i);
}
for (int b = 2; b <= 20; b += 2) {
    System.out.print(" " +b);
}

Liefert  1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20


0
ohwehohach  23.07.2021, 13:27
Einfach mit dem erwähnten "\n"

Und genau durch sowas wird aus eigentlich plattformunabhägigem Code plattformabhängiger Code 😉

0
GrakaVII  23.07.2021, 13:31
@ohwehohach

Es handelt sich hier nur um ein kleines Testprogramm, das nur auf seinem System ausgeführt wird, von daher wohl nicht so wichtig. Wenn er aus irgendeinem Grund das ganze gleichzeitig auf Unix und Windows Geräten testet, kann er ja

System.lineSeparator()

verwenden

1

Am einfachsten ist es, nicht direkt eine Ausgabe zu machen, sondern das, was ausgegeben werden soll, in einen String hinzuzufügen - also eine String-Variable pro Zeile.

Beispielsweise (aber eigentlich kein guter Code...)

String zeile1String = "";
String zeile2String = "";
for (...)
{
  zeile1String = zeile1String + irgendwas;
  zeile2String = zeile2String + irgendwasAnderes;
}
System.out.println(zeile1String);
System.out.println(zeile2String);
menschRaus 
Fragesteller
 23.07.2021, 13:23

Ich füge mal mein Code ein, vielleicht liegt da der Fehler:

for (int i = 1; i <= 10; i++) {
    System.out.print(" " + i);
}
for (int b = 2; b <= 20; b += 2) {
    System.out.print(b);

Die erste Zeile wird wie gewollt ausgegeben, die Zweite so:

2

4

6

..

möchte sie aber gerne so: 2 4 6 ..

0
ohwehohach  23.07.2021, 13:24
@menschRaus

Dass der Code das untere ausgibt geht eigentlich gar nicht. Sicher, dass Du nicht in der zweiten Schleife "println" stehen hast? Ansonsten kann man ja in beiden print-Statements einen klaren Unterschied erkennen... Wenn das obere also geht und das untere nicht, was könnte man dann probieren?

2
Von Experte Dultus, UserMod Light bestätigt

Verwende println.

System.out.println("...");

An jede Ausgabe wird automatisch eine neue Zeile angehängt.

menschRaus 
Fragesteller
 23.07.2021, 13:22

Ich füge mal mein Code ein, vielleicht liegt da der Fehler:

for (int i = 1; i <= 10; i++) {
    System.out.print(" " + i);
}
for (int b = 2; b <= 20; b += 2) {
    System.out.print(b);

Die erste Zeile wird wie gewollt ausgegeben, die Zweite so:
2
4
6
..
möchte sie aber gerne so: 2 4 6 ..

0
ohwehohach  23.07.2021, 13:23
@menschRaus

Du musst zwischen den beiden Schleifen ein "System.out.println();" machen für den Zeilenwechsel und dann in jeder Schleife "System.out.print" verwenden. Außerdem unterscheiden sich ja beide print-Statements - wenn also das untere nicht geht, was könnte man dann mal versuchen?

2

Hey,

was Du brauchst mein Freund, sind mehr Schleifen.

Eine Schleife um n-Zeilen auszugeben und eine Schleife um die Zahlen in einer Zeile auszugeben, zum Beispiel:

public static void main(String[] args) {

    for (int line = 1; line < 7; line++) {
        int number = line;
        for (int aNumber = 0; aNumber < 7; aNumber++) {
            System.out.print(number + " ");
            number+=line;
        }
        System.out.println();
    }
}

Ausgabe:

1 2 3 4 5 6 7 
2 4 6 8 10 12 14 
3 6 9 12 15 18 21 
4 8 12 16 20 24 28 
5 10 15 20 25 30 35 
6 12 18 24 30 36 42 

Gruß

Woher ich das weiß:eigene Erfahrung
AldoradoXYZ  23.07.2021, 13:33

Damit man das besser lesen kann für ich die Ausgabe der Zeile aber in eine Methode auslagern, also eher so:

public static void main(String[] args) {

    for (int lineNumber = 1; lineNumber < 7; lineNumber++) {
        printLine(lineNumber);
    }
}

public static void printLine(int lineNumber){
    int number = lineNumber;
    for (int aNumber = 0; aNumber < 7; aNumber++) {
        System.out.print(number + " ");
        number+=lineNumber;
    }
    System.out.println();
}

Gruß

0
for (int i = 1; i <= 10; i++) {
    System.out.print(" " + i);
}

println();   // beendet die laufende Zeile mit \n

for (int b = 2; b <= 20; b += 2) {
    System.out.print(" " +b);
}
ohwehohach  23.07.2021, 13:35

Fast. Statt

println();

muss da stehen

System.out.println();
2