Tannenbaum

mar___

Mitglied
Hey, ich habe eine Frage, ich muss die Aufgabe "Tannenbaum" machen, ich muss mit Parametern arbeiten und wenn "true" oder "false" kommt bzw. schreibt, kommt einen Stern auf dem Baum. Das ist mein Problem, ich habe den Code geschrieben uns scheint alles zu passen, außer der Stern. Ich habe es versucht mit arsg[1].lenght==0; oder mit

if(args[1].contains("true" || args[1].contains("false")) {
for (int a = 1; a < laenge; a++)
System.out.print(" ");
System.out.println("*");
} else;
und klappt es nicht. Ich brauche Hilfe :((
SubmissionEvaluation - Google Chrome 30.11.2021 18_33_00.jpg
Java:
public class tannenbaum {

    public static void main(String[] args) {
        int laenge = Integer.parseInt(args[0]);
        
        for (int a = 1; a <= laenge; a++) {
            for (int b = 1; b <= laenge - a; b++)
                System.out.print(" ");
            for (int b = 1; b <= (2 * a - 1); b++)
                System.out.print("x");

            System.out.println();
        }
        for (int i = 1; i < laenge; i++)
            System.out.print(" ");
        System.out.println("I");

    }

}
 

Robertop

Bekanntes Mitglied
Ich habe es versucht mit arsg[1].lenght==0; oder mit

if(args[1].contains("true" || args[1].contains("false")) {
for (int a = 1; a < laenge; a++)
System.out.print(" ");
System.out.println("*");
} else;
Was genau bedeutet denn, dass es nicht klappt? Ich denke mal, du bekommst eine OutOfBoundsException, wenn du das zweite Argument nicht angibst?

Das liegt daran, dass args[1] gar nicht existiert, wenn kein zweites Argument angegeben ist. Um zu prüfen, ob der zweite Parameter existiert, musst du also nicht die Länge von args[1] prüfen, sondern die Länge von args selbst. Danach kannst du ggf. args[1] auf true prüfen und so entscheiden, ob der Stern gezeichnet werden soll, oder nicht.
 

Blender3D

Top Contributor
Das ist mein Problem, ich habe den Code geschrieben uns scheint alles zu passen,
Dein Problem ist, dass Du zu kompliziert denkst. Zerlege die Aufgabe in seine Teilprobleme und füge die Teillösungen zusammen.
Du hast 2 Parameter die Höhe des Baums und ob er eine Spitze hat. -->
[CODE lang="java" title="zeichneBaum"]public static void zeichneBaum( int hoehe, boolean spitze ){
if( spitze )
zeichenSpitze( hoehe );
zeichenBaum( hoehe );
zeichneStamm( hoehe );
}[/CODE]
die zeichnen Funktionen sind von der Höhe des Baums abhängig. Und brauchen eine Hilfsfunktion um ein Zeichen zu vervielfältigen.
[CODE lang="java" title="multipliziereString"]String multipliziereString(String text, int anzahl ){
String str ="";
for( int i= 0; i < anzahl; i++ )
str += text;
return str;
}[/CODE]
Versuche dein Problem, mit diesem Ansatz zu lösen.
 

Ähnliche Java Themen

Neue Themen


Oben