Java Dreieck programmieren?

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ß

Woher ich das weiß:Berufserfahrung

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:

Möglicherweise hilft dir das noch zusätzlich zum Verständnis.

Wo ist das Problem?


Paula158 
Beitragsersteller
 19.11.2018, 14:07

Ich weiß nicht wie ich das Programm schreiben soll

0