Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Viereck mit Sterne - Anfänger bittet um Kritik und Anregung
Hallo,
ich habe soeben mein erstes Programm in Java geschrieben und würde jetzt gerne eure Meinung zu diesem Programm wissen. Was kann ich noch besser machen bzw. wie würdet ihr dieses Programm schreiben.
Die Problemstellung: In der Konsole soll ein Viereck mit Sternen gezeichnet werden.
Code:
********
* *
* *
* *
* *
* *
* *
********
Java:
public static void main(String[] args) {
//Seitengröße
int seiteAsterne = 10;
int seiteBzeilen = 20;
int aSterne = seiteAsterne - 1;
//Viereckdarstellung
// Zählschleife für die Zeilen beginnt
for (int sBz = 1; sBz <= seiteBzeilen; sBz++) {
// Schleife für die Sterne beginnt
if (sBz == 1 | sBz == seiteBzeilen) {
for (int sAs = 1; sAs <= seiteAsterne; sAs++) {
System.out.print("*"); //Hier wirde die erste und letzte Zeile geschrieben
}
System.out.print("\n");
} else if (sBz > 1 | sBz <= seiteBzeilen) {
//Hier wird die 2te bis vorletzte Zeile geschrieben
for (int sAs = 1; sAs <= seiteAsterne; sAs++) {
if (sAs == 1) {
System.out.print("*");
} else if (sAs == 2 | sAs <= aSterne) {
System.out.print(" ");
} else if (sAs == seiteAsterne) {
System.out.print("*");
}
}
System.out.print("\n");
}
}
}
klar habt ihr Recht damit, dass man gewisse Sachen kompakter, evtl. auch besser proggen könnte...ABER für das erste Programm ist das sauber und gut programmiert.
Der Quellcode ist kommentiert, korrekt eingerückt, die Benamung der Variablen ist evtl. eigenwillig, aber nachvollziehbar. Für das erste Programm ist das eine reife Leistung.
na ja, er fragt schon auch nach einem Feedback für sein Programm.
Eure Antworten sind natürlich absolut korrekt und sicherlich auch sinnig (wobei ich mir das nicht weiter angeschaut habe), nur vermisse ich dabei das Lob für den TO.
Denn im Gegensatz zu vielen anderen Noobs hier, macht er hundert Sachen richtig. Bspw. Java-Tags^^, eine vernünftige Themenüberschrift und der Code ist grundsätzlich sauber und korrekt.
Egal, ich finde das es grundsätzlich sehr gut ist...Verbesserungsmöglichkeiten haben gasssst und XHelp aufgezeigt, das Lob wollte ich noch bringen und dann soll es das gewesen sein.
Denn im Gegensatz zu vielen anderen Noobs hier, macht er hundert Sachen richtig. Bspw. Java-Tags^^, eine vernünftige Themenüberschrift und der Code ist grundsätzlich sauber und korrekt.
Hallo,
ich habe soeben mein erstes Programm in Java geschrieben und würde jetzt gerne eure Meinung zu diesem Programm wissen. Was kann ich noch besser machen bzw. wie würdet ihr dieses Programm schreiben.
Also wenn das tatsächlich dein erstes selbstgeschriebenes Programm war - dann ist das exzellente Arbeit. Hut ab!
Für den Murray-Bozinsky-Orden reicht es aber dennoch nicht, denn ich sehe da noch einen winzigen Schönheitsfehler: In der Zeile
Java:
else if (sAs == 2 | sAs <= aSterne)
ist die erste Bedingung unnötig (die ist ja implizit in der zweiten Bedingung mit enthalten). Folglich kann man den [c]sAs == 2[/c]-Teil auch weglassen. Noch schöner wäre allerdings diese Lösung:
Java:
else if (sAs > 1 & sAs < aSterne)
Das würde den Sinn der if-Abfrage denke ich noch am ehesten wiedergeben, nämlich das in diesen else-Teil nur dann verzweigt werden soll wenn sAs zwischen 1 und aSterne liegt. Außerdem wird das Programm dadurch etwas robuster (wenn du dein Programm irgendwann mal abänderst/ausbaust, und dadurch z.B. auch negative Werte für sAs möglich werden, dann kann eine unpräsize formulierte if-Bedingung irgendwo im Programm durchaus eine lange Fehlersuche erfordern. Daher sollte man besser gleich von Anfang an exakt formulieren was man erreichen möchte. Je genauer man seine Werte unter Kontrolle hat desto leichter wird eine Fehlersuche ).