for-Kontrollstruktur für Pyramide

Lion.King

Aktives Mitglied
Hallo,

ich möchte ein Programm schreiben, wo ich nach Eingabe einer Zahl im Terminal eine Pyramide aus * mit so vielen Stufen in der Ausgabe erhalte, also mit der Pyramidenhöhe. Wenn ich z.B. 3 eingebe, möchte ich so eine Pyramide haben: Pyramide mit 3 Stufen.PNG

Bisher bin ich so weit gekommen:

Java:
public class ReLoop {
    public static void main(String[] args) {
        int height = Terminal.askInt("Pyramidenhoehe:\n");
        for (int i = 1; i <= height) {
            for (int j = 0; j < height-i; j++) {
                Terminal.print(" ");
            }
            for (j = 0; j < i*2; j++) {
                Terminal.print("*");
            }
            Terminal.print("\n");
            i++;
        }
    }
}

Jedoch kommt beim Compilieren ein Fehler auf, den ich nicht verstehe:

/tmp/IpKbfz3vdR/ReLoop.java:4: error: ';' expected
for (int i = 1; i <= height) {
^
1 error

Weiß jemand, wie ich diesen Fehler behebe und kann in meinem Code schauen, ob ich vielleicht noch weitere Fehler gemacht habe?
 
In Zeile 4 hast Du i durchaus deklariert und in Zeile 5 hast Du auch j deklariert. In Zeile 8 fehlt die Deklaration von j.

Der von Dir beschriebene Fehler bezieht sich aber auf etwas anders: eine for-Schleife sieht grundsätzlich so aus:

Java:
for (initialisierung; bedingung; inkrement)

Die drei Teile können zwar prinzipiell weggelassen werden, nicht aber die beiden Semikola. Eine endlos-for-Schleife würde so aussehen:
Java:
for (;;) {
}

Kurz: der Compiler meckert an, dass in Zeile 4 das zweite Semikolon fehlt.
 
Hab ich gemacht, aber dann kam diese Fehlermeldung:

./ReLoop.java:8: error: cannot find symbol
for (j = 0; j < i*2; j++) {
^
symbol: variable j
location: class ReLoop
./ReLoop.java:8: error: cannot find symbol
for (j = 0; j < i*2; j++) {
^
symbol: variable j
location: class ReLoop
./ReLoop.java:8: error: cannot find symbol
for (j = 0; j < i*2; j++) {
^
symbol: variable j
location: class ReLoop
3 errors

Wie kann ich das ändern?
 
Die Antwort hast Du Dir doch schon selbst gegeben und in #4 habe ich sie Dir nochmal bestätigt: in Zeile 8 fehlt die Deklaration von j.
 

Zurück
Oben