Dr Java Muster ausgeben wie?
Hey Leute ich bin bei der ersten Woche meines Studiums und heute hatten wir das erste mal Programmieren in dem Übungskur. Ich bin ein Anfänger und daher komme ich mit einigen Sachen nicht mit. Wir benutzen "Dr Java" und sollten ein Programm schreiben, welches 3+4 rechnet und das Ergebnis 7 zeigt. Dies ist mir gelungen, jedoch sollen nun Muster folgen mit * Sternchen - könnte mir jemand helfen? Und mir eventuell Tipps geben wie und wo ich am besten lernen kann? Dankiii im Vorraus
3 Antworten
Na ja, informiere dich Mal, wie Schleifen aussehen.
Du hast quasi zwei Wiederholungen:
Eine nach "unten" (du wiederholst die Schleife n mal) und eine Innere Schleife, die die Sternchen der aktuellen Zeile ausgibt.
Wenn ihr noch keine Schleifen behandelt habt, arbeite einfach mit mehreren System.out.println
Wie xxxcyberxxx bereits erklärt hat, entweder machst du es mit verschachtelten Schleifen (wenn ihr dies bereits gelernt habt).
int sternchen = 5;
for (int i = 0; i < sternchen; i++) {
for (int j = 0; j < i + 1; j++) {
System.out.print("*");
}
System.out.println();
}
Man kann es sich so vorstellen:
Ich will n Zeilen mit jeweils n Sternchen darin haben (1. Zeile 1 Sternchen, 2. Zeile 2 Sternchen etc). Die Variable n habe ich im Code zu sternchen umbenannt.
Ich kann aber nur ein Sternchen gleichzeitig schreiben, deswegen schreibe ich in jeder Zeile dieselbe Anzahl an Sternchen einzeln raus.
Das bedeutet im Code: Die erste for-Schleife wird so oft ausgeführt, wie du Zeilen mit Sternchen haben willst. Die zweite for-Schleife wird dann jeweils so oft ausgeführt, wie du gerade Zeilen hast.
Wenn dann die einzelnen Sternchen rausgeschrieben sind, will ich aber noch ein Leerzeile einfügen. Das mache ich mit einem leeren println() oder print("\n")
Info: j < i + 1
Das + 1 kommt daher, dass beim Programmieren meist von 0 weggezählt wird, siehe Initialisierung von i, wir aber nicht mit 0 Sternchen anfangen wollen sondern mit 1
Oder mit mehreren Ausgaben falls ihr Schleifen noch nicht gemacht habt.
System.out.println("*");
System.out.println("**");
System.out.println("***");
System.out.println("****");
System.out.println("*****");
Info: println() fügt am Ende des übergebenen Strings automatisch eine Leerzeile (Char code \n) ein. print() macht dies nicht, weshalb im Beispiel von Destranix die händisch eingefügt wurden
Wenn du das ganze umdrehen willst, musst du die Schleife so umstrukturieren, dass du rückwärts durchgehst.
int sternchen = 5;
for (int i = sternchen; i > 0; i--) {
for (int j = 0; j < i; j++) {
System.out.print("*");
}
System.out.println();
}
Du fängst bei der Anzahl an Sternchen an und zählst pro Zeile eins runter, bis die Anzahl bei 0 angekommen ist.
Oder wieder ohne Schleifen:
System.out.println("*****");
System.out.println("****");
System.out.println("***");
System.out.println("**");
System.out.println("*");