Wie mache ich daraus ein Strucktogramm?
import java.util.Scanner;
public class ChristmasTreeMain {
Scanner scanner = new Scanner(System.in);
int Tage;
public static void main(String args[]) {
ChristmasTreeMain tannenbaum = new ChristmasTreeMain();
tannenbaum.inputTage();
tannenbaum.drawTop(tannenbaum.Tage);
tannenbaum.drawMiddle(tannenbaum.Tage);
tannenbaum.drawBottom(tannenbaum.Tage);
}
public void inputTage() {
boolean isInputValid = false;
do {
System.out.println("Bitte geben Sie einen Tage zwischen 1 und 24 ein:");
while (!scanner.hasNextInt()) {
System.out.println("Ungueltige Eingabe, geben Sie eine Zahl zwischen 1 und 24 ein.");
scanner.next();
}
Tage = scanner.nextInt();
if (Tage >= 1 && Tage <= 24) {
isInputValid = true;
} else {
System.out.println("Ungueltige Eingabe, geben Sie eine Zahl zwischen 1 und 24 ein.");
}
} while (!isInputValid);
scanner.close();
}
public void drawTop(int Tage) {
for (int i = 2; i <= Tage; i++) {
System.out.print(" ");
}
System.out.print("ii");
System.out.println();
}
public void drawMiddle(int Tage) {
int Dots = 0;
for (int Tag = 1; Tag <= Tage; Tag++) {
if (Tag > 2) {
Dots += 2;
}
if (Tag > 1) {
for (int i = 0; i < Tage - Tag; i++) {
System.out.print(" ");
}
System.out.print("i/");
for (int i = 0; i < Dots; i++) {
System.out.print(".");
}
System.out.print("\\i");
System.out.println();
}
}
}
public void drawBottom(int Tage) {
for (int r = 1; r <= Tage; r++) {
System.out.print("--");
}
System.out.println();
for (int l = 2; l <= Tage; l++) {
System.out.print(" ");
}
System.out.print("||");
}
}
1 Antwort
Zeile für Zeile vorgehen.
Die einzelnen Befehle sind einfach Kästen gleicher Größe untereinander.
Die While Schleife wird auf eine gewisse Art symbolisiert, die Du sicherlich in Deinen Kursunterlagen hast.
Dann mit dem Wissen einfach Schritt für Schritt vorgehen. Das ist stupide, ein Computer kann das auch.