In der Ausgabe sollte anstelle des obersten Sterns ein "+" stehen nur scheitere ich bei der Implementierung

Reykja

Aktives Mitglied
Java:
import java.util.Scanner;

public class Aufgabe2 {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.println("Tree Height hier eingeben: ");
        int treeHeight = sc.nextInt();
        for (int i = 1; i <= treeHeight; i++) {
            for (int j = 0; j < i; j++) {
                for (int k = 0; k < treeHeight-j; k++) {            //generiert Spaces
                    System.out.print(" ");
                }
                int a = 0;
                while (a < j*2+1) {                                          //erzeugt Zeichen
                    if (a == 2*j || a == 0)
                        System.out.print("*");
                    else
                        System.out.print("#");
                    a++;
                }
                System.out.println();
            }
        }
    }
}


Ausgabe:
Tree Height hier eingeben: 4

* --> sollte ein + sein
*
*#*
*
*#*
*###*
*
*#*
*###*
*#####*

Process finished with exit code 0
 
Ich würde sagen, wenn du den ersten Stern (das Plus) ausgibst haben deine Indexvariablen einen bestimmten Wert. Den musst du halt abfragen und genau in diesem Fall ein Plus ausgeben. Geraten, weil nicht genau angeschaut: i==1 und j==0.
 
Java:
if (1 < treeHeight){
            for (int l = 0; l < treeHeight; l++) {
                System.out.print(" ");
            }
            System.out.println("+");
        } else
            System.out.println("+");

hab jetzt das vor der while schleife eingefügt. Ist zwar nicht so schön aber es funktioniert
 
Dann ist das nur ein optischer Eindruck wegen der etwas schräggestellten Rauten bzw Hashtags.
 

Neue Themen


Zurück
Oben