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.
Sind die while-Schleifen richtig in for-Schleifen ersetzt worden?
Erstmal Dankeschön!
Wenn ich das ausführe erscheinen mir paar Fehler wegen dem "Terminal" und wegen dem "j" die da stehen.
Also das, weiß aber nicht, wie ich das jetzt beheben oder verändern kann...
Java:
javac /tmp/ET4LSWwGwT/Reloop.java
/tmp/ET4LSWwGwT/Reloop.java:3: error: cannot find symbol
int height = Terminal.askInt("Pyramidenhoehe:\n");
^
symbol: variable Terminal
location: class Reloop
/tmp/ET4LSWwGwT/Reloop.java:6: error: variable j is already defined in method main(String[])
for(int j=0;j<height-1;j++)Terminal.print(" ");
^
/tmp/ET4LSWwGwT/Reloop.java:6: error: cannot find symbol
for(int j=0;j<height-1;j++)Terminal.print(" ");
^
symbol: variable Terminal
location: class Reloop
/tmp/ET4LSWwGwT/Reloop.java:7: error: variable j is already defined in method main(String[])
for(int j=0;j<i*2;j++)Terminal.print("*");
^
/tmp/ET4LSWwGwT/Reloop.java:7: error: cannot find symbol
for(int j=0;j<i*2;j++)Terminal.print("*");
^
symbol: variable Terminal
location: class Reloop
/tmp/ET4LSWwGwT/Reloop.java:8: error: cannot find symbol
Terminal.print("\n");
^
Das wird aber dann doch im anderen Programm auch schon der Fall gewesen sein, oder?
Beim Anpassen von Legacy Code (So schimpft man Code manchmal, den man anpassen muss weil er neuen Gegebenheiten nicht entspricht) ist der erste Schritt immer, dass man sicher stellt, dass sich dieser wie gewohnt übersetzen lässt.
Bezüglich des Fehlers: Vermutlich verwendet Ihr irgend eine Terminal Klasse in euren Übungen. Diese musst Du natürlich auch einbinden. Also ggf. fehlt nur eine import Anweisung oder ihr kopiert die Klasse immer so dazu oder oder oder ....
Der Zweite Fehler besagt, dass Du ja schon eine lokale Variable j hast. (int j = 0;), daher kannst Du keine zweite lokale Variable j nennen.
Hier solltest Du also schlicht diese eine Zeile raus löschen, damit du nur noch die lokale Variable j mit Gültigkeitsbereich der jeweiligen for Schleife hast.
Ja das stimmt, war auch da schon ein "Problem", also ich habe jetzt nicht genau verstanden, wie ich das zu ersetzen habe... und mit löschen der Zeile meinst du die Zeile "int j = 0"?
Der Zweite Fehler besagt, dass Du ja schon eine lokale Variable j hast. (int j = 0;), daher kannst Du keine zweite lokale Variable j nennen.
Hier solltest Du also schlicht diese eine Zeile raus löschen, damit du nur noch die lokale Variable j mit Gültigkeitsbereich der jeweiligen for Schleife hast.
public class Terminal {
public static void main(String[] args) {
int height = Terminal.askInt("Pyramidenhoehe:\n");
for(int i=1;i<=height;i++){
for(int j=0;j<height-1;j++)System.out.print(" ");
for(int j=0;j<i*2;j++)System.out.print("*");
System.out.print("\n");
}}}
Ah okay Danke und das "Terminal.askInt" muss ich leider auch noch umändern, bei den anderen habe ich "System.out.print" geschrieben, aber da hier nach etwas gefragt wird bin ich mir gerade nicht sicher was ich hier hinschreiben soll
Also da wäre meine Vermutung, dass ihr da irgendwas an die Hand gegeben bekommen habt, das ihr verwenden sollt.
Ansonsten nutze einfach erst einmal folgende Klasse für Dein aktuelles Projekt:
Java:
import java.util.Scanner;
public class Terminal {
private static Scanner scanner = new Scanner(System.in);
public static int askInt(String msg) {
System.out.println(msg);
return scanner.nextInt();
}
}
(Jetzt so aus dem Kopf geschrieben, aber als erstes Minimum sollte es erst einmal funktionieren.)