Hallo, liebe Leute!
Ziel war es ein kleines Programm zu schreiben, das einen Weihnachtsbaum mit einer gewünschten Höhe ausgibt. Ein Baum der Höhe 12 soll zum Beispiel so aussehen:
Ich habe das, so denke ich jedenfalls, einigermaßen hinbekommen, hier mein Code:
Ich habe eine Methode geschrieben, die als Parameter die Länge und einen Char bekommt und dann einen String erzeugt mit der gewünschten Länge, und zwar nur aus dem vorgegebenen Zeichen bestehend, denn ich habe gelesen, dass es so eine Methode in Java nicht fertig implementiert gibt.
Nun würde ich gerne anhand dieses Beispiels lernen, wie man Fehlermeldungen berücksichtigen kann.
Mein Code liefert zum Beispiel einen Fehler, wenn der Benutzer die Höhe 0 eingibt:
Klar, denn in diesem Fall hat man einen negativen Arrayindex.
Mir ist nicht ganz klar, wie ich jetzt
verwenden kann, um das abzufangen.
Auch die Benutzung von
die hier vielleicht angebracht wäre, ist mir nicht klar.
Vielleicht kann mir das jemand mal kurz erläutern? Aus den Lehrbüchern werde ich irgendwie nicht schlau.
Dankesehr, ein schönes Wochenende und viele Grüße!
Ziel war es ein kleines Programm zu schreiben, das einen Weihnachtsbaum mit einer gewünschten Höhe ausgibt. Ein Baum der Höhe 12 soll zum Beispiel so aussehen:
Ich habe das, so denke ich jedenfalls, einigermaßen hinbekommen, hier mein Code:
Java:
import java.util.*;
public class XmasTree {
static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("Hoehe des Baums eingeben: "); /* Erwünschte Höhe eingeben */
int height = sc.nextInt();
makeTree(height);
}
public static void makeTree(int height) {
int maxWidth = (2 * height) - 1; /* Die breiteste Stelle des Baums */
String root = makeString(height - 1, ' ') + makeString(1, '#') + makeString(height - 1, ' '); /* Der Stamm */
/* Male alles außer Stamm: */
for (int i = height; i > 0; i--) {
String treeLevel = makeString(i - 1, ' ') + makeString(maxWidth - 2 * (i - 1), '*')
+ makeString(i - 1, ' ');
System.out.println(treeLevel);
}
System.out.println(root); /* Male zum Schluss noch den Stamm */
}
/**
* Erzeuge einen String der Länge len, der nur aus dem Char c besteht
*
* @param len, c
* @return
*/
public static String makeString(int len, char c) {
char[] cs = new char[len];
Arrays.fill(cs, c);
return new String(cs);
}
}
Ich habe eine Methode geschrieben, die als Parameter die Länge und einen Char bekommt und dann einen String erzeugt mit der gewünschten Länge, und zwar nur aus dem vorgegebenen Zeichen bestehend, denn ich habe gelesen, dass es so eine Methode in Java nicht fertig implementiert gibt.
Nun würde ich gerne anhand dieses Beispiels lernen, wie man Fehlermeldungen berücksichtigen kann.
Mein Code liefert zum Beispiel einen Fehler, wenn der Benutzer die Höhe 0 eingibt:
Code:
Exception in thread "main" java.lang.NegativeArraySizeException: -1
at XmasTree.makeString(XmasTree.java:37)
at XmasTree.makeTree(XmasTree.java:19)
at XmasTree.main(XmasTree.java:13)
Klar, denn in diesem Fall hat man einen negativen Arrayindex.
Mir ist nicht ganz klar, wie ich jetzt
Code:
throw
Auch die Benutzung von
Code:
try
Vielleicht kann mir das jemand mal kurz erläutern? Aus den Lehrbüchern werde ich irgendwie nicht schlau.
Dankesehr, ein schönes Wochenende und viele Grüße!