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.
Kriegst Du es denn mit Stift und kariertem Papier hin, so eine Pyramide zu schreiben?
Wenn ja: Wie gehst Du vor? Kannst Du es ganz genau beschreiben, so dass Du es jemandem beschreiben kannst, der die Aufgabe nicht kennt und nun mit einem Stift auf kariertem Papier so eine Pyramide schreiben will. Und natürlich Zeile für Zeile von oben nach unten!
Und wenn Du es nicht kannst: Woran scheiterst Du denn? Was für Schritte hast Du denn identifiziert, die notwendig sind?
Fragen due du beantworten können solltest sind zb der wievielte Buchstabe ist C.
Wieviel Zeilen werden es werden?
Mit wievielen Leerzeichen musst du anfangen.....?
Kriegst Du es denn mit Stift und kariertem Papier hin, so eine Pyramide zu schreiben?
Wenn ja: Wie gehst Du vor? Kannst Du es ganz genau beschreiben, so dass Du es jemandem beschreiben kannst, der die Aufgabe nicht kennt und nun mit einem Stift auf kariertem Papier so eine Pyramide schreiben will. Und natürlich Zeile für Zeile von oben nach unten!
Und wenn Du es nicht kannst: Woran scheiterst Du denn? Was für Schritte hast Du denn identifiziert, die notwendig sind?
Fragen due du beantworten können solltest sind zb der wievielte Buchstabe ist C.
Wieviel Zeilen werden es werden?
Mit wievielen Leerzeichen musst du anfangen.....?
Fragen due du beantworten können solltest sind zb der wievielte Buchstabe ist C.
Wieviel Zeilen werden es werden?
Mit wievielen Leerzeichen musst du anfangen.....?
Und auch ganz wichtig: Wie hängen der n-te Buchstabe, die Anzahl der Zeilen und die Anzahl der Leerzeichen voneinander ab? Gibt es eine bestimmte Beziehung, die man allgemein ausdrücken kann?
Mal kurz vorab: wenn Du Code postest, bitte im Editor oben links auf </> klicken und dort den Code einfügen. Das kann man dann viel besser lesen und der Editor kommt auch nicht mit Formatierungen durcheinander.
Du hast hier eine Methode Pyramide, die einen String zurückliefert, der eine Zahl enthält und diese Zahl wandelst Du jetzt in einen int um. Das ist "ein bisschen" kompliziert. Lass doch einfach die Methode Pyramide statt eines Strings gleich ein int zurückgeben.
Dann hätten wir den Methodennamen "Pyramide"... der ist ja nun absolut nichtssagend. Du willst offensichtlich die Zahl der Reihen ermitteln, also wieso nicht "ermittleReihen"?
Java:
static int ermittleReihen(String text) {
...
}
Übrigens: in Java schreibt man Namen von Variablen und Methoden in lowerCamelCase.
Wie sieht die Methode nun aus? Die Methode erhält nun einen String. Dich interessiert aber nur der erste Buchstabe (darum habe ich den Parameter text und nicht buchstabe genannt).
Mit Hilfe von charAt kann man ein Zeichen im String ermitteln. Jetzt muss man noch ein paar Dinge überlegen:
Der Text könnte leer sein. Dann hätte man 0 Reihen.
Das erste Zeichen könnte außerhalb des Alphabets liegen. Dann hätte man ebenfalls 0 Reihen.
Java:
static int ermittleReihen(String text) {
if (text.isEmpty()) {
return 0;
}
char zeichen = text.charAt(0);
if (zeichen < 'A' || zeichen > 'Z') { // zeichen liegt außerhalb des Alphabets (Großbuchstaben)
return 0;
}
return zeichen - 64; // ich präferiere: return zeichen - 'A' + 1; aber da Du schon mit 64 arbeitest....
}
Mal kurz vorab: wenn Du Code postest, bitte im Editor oben links auf </> klicken und dort den Code einfügen. Das kann man dann viel besser lesen und der Editor kommt auch nicht mit Formatierungen durcheinander.
Zum Thema:
Du hast hier eine Methode Pyramide, die einen String zurückliefert, der eine Zahl enthält und diese Zahl wandelst Du jetzt in einen int um. Das ist "ein bisschen" kompliziert. Lass doch einfach die Methode Pyramide statt eines Strings gleich ein int zurückgeben.
Dann hätten wir den Methodennamen "Pyramide"... der ist ja nun absolut nichtssagend. Du willst offensichtlich die Zahl der Reihen ermitteln, also wieso nicht "ermittleReihen"?
Java:
static int ermittleReihen(String text) {
...
}
Übrigens: in Java schreibt man Namen von Variablen und Methoden in lowerCamelCase.
Wie sieht die Methode nun aus? Die Methode erhält nun einen String. Dich interessiert aber nur der erste Buchstabe (darum habe ich den Parameter text und nicht buchstabe genannt).
Mit Hilfe von charAt kann man ein Zeichen im String ermitteln. Jetzt muss man noch ein paar Dinge überlegen:
Der Text könnte leer sein. Dann hätte man 0 Reihen.
Das erste Zeichen könnte außerhalb des Alphabets liegen. Dann hätte man ebenfalls 0 Reihen.
Java:
static int ermittleReihen(String text) {
if (text.isEmpty()) {
return 0;
}
char zeichen = text.charAt(0);
if (zeichen < 'A' || zeichen > 'Z') { // zeichen liegt außerhalb des Alphabets (Großbuchstaben)
return 0;
}
return zeichen - 64; // ich präferiere: return zeichen - 'A' + 1; aber da Du schon mit 64 arbeitest....
}
private static String getLineStr(int line) {
String str = "";
int i = 0;
for (i = 0; i < line; i++)
str += (char) (i + 'A');
for (; i >= 0; i--)
str += (char) (i + 'A');
return str;
}
private static String getTabStr(int size, int line) {
String str = "";
for (int i = 0; i < size - line - 1; i++)
str += "-";
return str;
}
}[/CODE]
Ich lasse die Klammer weg wenn es nicht nötig ist. Spart eine Zeile Code und ist dank Einrückung kein Nachteil.
Sprachen wie Pyhton verzichten auf die Klammer ganz. Find ich persönlich nicht gut.
Deiner Meinung nach sollte man die Klammern immer machen. Ich mache es nicht immer. Der Compiler hat kein Problem damit.
Also steht meine Sichtweise Deiner Sichtweise gegenüber. Ergo ist das eine Ansichtssache.
Ganz offensichtlich ist es doch Ansichtssache, denn wie Du unschwer erkennen konntest, hat @Blender3D eine andere Ansicht zu diesem Punkt.
Generell würde ich Dir aber zustimmen - Eine Ausnahme wäre in meinen Augen lediglich eine GuardClause.
Und natürlich ist zu sehen: mit aktuellen IDEs sollte der Code immer richtig eingerückt und auch sonst formatiert sein, so dass das Argument Lesbarkeit (Das war ja hier vorgebracht: "das sieht ja furchtbar aus!") nicht zieht.
Aber dafür gibt es andere Gründe wie eine höhere Sicherheit bei Refactorings.