de Programmieren Sprachen Java

Java ASCII-Art - T

Ziel ist es mithilfe von Sternen ein T zeichnen zu können. Dafür überlegen wir uns erstmal wie es aussehen soll.

1*******
2   *   
3   *   
4   *   
5   *   
6   *   
7   *

Damit können wir jetzt unsere Regeln für unser Programm festlegen. Wir benötigen also erstmal zwei Schleifen. Eine die die Zeilen steuert und eine für die Spalten (also einmal damit wir nach Rechts die Ausgabe haben und einmal nach Unten). Dabei ist die erste Schleife für die Steuerung nach unten und die innere Schleife für die Steuerung nach rechts.

Die zwei Schleifen können wir uns also erstmal schreiben. Wir können dann auch gleich dafür sorgen, dass wir in der ersten Zeile nur Sternchen schreiben. Dafür fragen wir einfach ob unsere Laufvariable (bei uns ist das i) 0 ist.

1for (int i = 0; i < n; i++) {
2  for (int j = 0; j < n; j++) {
3    if (i == 0) {
4      System.out.print("*");
5    }
6  }
7}

Nun können wir die nächsten Spalten zeichnen indem wir nach jedem Schleifendurchlauf wo wir nach unten gehen ein Zeilenumbruch machen.

1for (int i = 0; i < n; i++) {
2  for (int j = 0; j < n; j++) {
3    if (i == 0) {
4      System.out.print("*");
5    }
6  }
7  System.out.println();
8}

Jetzt überlegen wir uns wann wir genau den geraden Strich für das T machen wollen. Normalerweise ist der Strich ja in der Mitte. Deswegen nehmen wir die hälfte von dem Gesamten (Gesamt ist hier n und daher nehmen wir n/2). Wir schreiben also auch ein Stern, wenn wir an dem besagten Punkt (n/2) angekommen sind. Daher bauen wir das auch in unsere If ein.

 1for (int i = 0; i < n; i++) {
 2  for (int j = 0; j < n; j++) {
 3    if ((i == 0) || (j == n / 2)) {
 4      System.out.print("*");
 5    } else {
 6      System.out.print(" ");
 7    }
 8  }
 9  System.out.println();
10}

Ich habe die beiden Bedingungen mit einem ODER verbunden, da wir bei beiden Fällen ein Stern zeichnen wollen und diese nicht gleichzeitig auftreten (also wenn eines zutrifft reicht uns das). Damit ist das Programm fertig.