Java Dreieck programmieren?
Ich bin Java-Anfänger und tu mich dem Ganzen noch etwas schwer. Kann mir jemand bei folgender Fragestellung weiterhelfen? Es geht um zweifach for-Schleifen.
"Schreiben Sie ein Programm, das ein aus -Zeichen zusammengesetztes Dreieck auf der Konsole ausgibt. Der Benutzer soll vorher nach der Anzahl der Zeilen gefragt werden. "
Ablaufbeispiel:
Anzahl der Zeilen: 5
Danke im Voraus!!!
3 Antworten
Viel Spaß damit:
import java.util.Scanner;
public class Triangle {
private static final String INPUT_MESSAGE = "Anzahl der Zeilen: ";
private static final char TRIANGLE_CHAR = '*';
private Scanner scanner;
public static void main(String[] args) {
new Triangle();
}
public Triangle() {
this.scanner = new Scanner(System.in);
int lines = getLineCount();
paintTriangle(lines);
}
private void paintTriangle(int lines) {
int width = 1;
for (int y = 0; y < lines; y++) {
for (int x = 0; x < width; x++) {
System.out.print(TRIANGLE_CHAR);
}
width++;
System.out.println();
}
}
private int getLineCount() {
System.out.println(INPUT_MESSAGE);
return scanner.nextInt();
}
}
Ausgabe:
Anzahl der Zeilen:
5
*
**
***
****
*****
Fehlerprüfung bei Falscheingabe und Co. ist da natürlich nicht dabei.
Gruß
Falls du es doch noch selbst programmieren möchtest:
Es gibt (wie so oft) verschiedene Lösungsansätze, zwei stelle ich vor.
a) Du siehst bei der Beispielausgabe, dass eine bestimmte Anzahl an Zeilen ausgegeben wird und je Zeile lediglich ein Sternchen dazukommt. Also würde es doch reichen, 5 Ausgaben vorzunehmen, bei denen jeweils stets nur ein Zeichen dazukommt.
zeichenkette = *
zaehle von 1 bis 5 inklusive
gebe zeichenkette mitsamt zeilenumbruch aus
haenge noch ein * an zeichen an
b)
anzahl zeichen = 1
zaehle von 1 bis 5 inklusive
zaehle bis zu anzahl zeichen
gib zeichen aus
gebe zeilenumbruch aus
erhoehe die anzahl an zeichen um 1
Bezüglich for-Schleifen, auch verschachtelt, kannst du hier nochmals Erklärungen zu einem Beispiel von meiner Seite lesen:
- Wie kann ich bei Greenfoot ein 5x5-Gebiet komplett abfahren mit Zählschleifen?
- if-Abfrage auf ganze for-Schleife beziehen?
Möglicherweise hilft dir das noch zusätzlich zum Verständnis.
Wo ist das Problem?