Frage von danini1705, 81

Java Progammierung: Warum kommt kein Prompt?

Hallo liebe gf Community. Ich habe folgendes Problem und zwar:

public class textadventure {

public static void ausgabe() {

System.out.println("Hallo Beschwörer. Wie geht es dir?"); }

public static void main(String[] args) { int Schwert1 = 5;

System.out.println("Du bist alleine. Ganz alleine. Auf einmal kommt mein Mensch zu dir. Was sagst du ?");



boolean continues = true;
boolean continued = true;
String n = Kon.readString();
if (n.equalsIgnoreCase("Hallo")) {
  ausgabe();
  
  
  
}
else if (n.equalsIgnoreCase("Hi")) {
  ausgabe();
} 
else if (n.equalsIgnoreCase("Guten Tag")) {
  ausgabe();
}
else if (n.equalsIgnoreCase("420")) {
  System.out.println("The Answer of life,the Universe and everything with a zero!"); 
} 
else if (n.equalsIgnoreCase("42")) {
  System.out.println("The Answer of life,the Universe and everything!"); 
}


else {
  System.out.println("Du bist tot");
  continues = false;
} 


if (continues = true) {
System.out.println("Möchtest du mitkommen auf eine bemerkenswerte tolle Reise?");

//Hier seht ihr den System.out.println() und zwar ist hier das Problem,dass ich nichts eingeben kann wenn das aufploppt! Wisst ihr wie man das beheben kann???

if (n.equalsIgnoreCase("Ja")) {
System.out.println("Du bekommst das Schwert von Orakel! Möchtest du die Stats sehen?");

if (n.equalsIgnoreCase("Ja")) {
} // end of if
if (n.equalsIgnoreCase("Nein")) {
System.out.println("Ok"); 
} // end of if
} // end of if
} // end of if
else {
System.out.println("Dir rennt eine Horde von Zombies hinterher! Was tust du ? Rennen oder kämpfen?");
continued = false;
if (n.equalsIgnoreCase("rennen")) {
System.out.println("Du rennst und rennst und rennst immer weiter. Du versteckst dich in einem Baum. Du überlebst!");
} // end of if
} // end of if-else










} // end of main

} // end of class test
Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von daCypher, 40

Ich kenne dieses `Kon.readString();` nicht, aber wenn das an der ersten Stelle funktioniert, dann kannst du es an der Stelle, die du markiert hast, auch benutzen. Wenn du einfach nur println machst, macht Java nur eine Ausgabe und wartet nicht auf eine Eingabe.

Also nach meiner Theorie müsste ein n = Kon.readString(); an der Stelle reichen.

Kommentar von danini1705 ,

Ich habe es ja als String festgelegt. Es funktioniert überall außer bis zum if bei der Reise!

Kommentar von daCypher ,

Ja, du initialisierst n als String und weist ihm gleich Kon.readLine zu. Danach ist n aber einfach nur ein String und Java weiß nicht, dass nach dem println wieder was neues eingegeben werden soll. Deshalb musst du nochmal n = Kon.readLine(); machen. Dadurch wird wieder eine Zeile von der Konsole gelesen und in der Variable n gespeichert und die kannst du dann mit den Ifs auslesen.

Also du schreibst dieses "Möchtest du mitkommen auf eine bemerkenswerte tolle Reise?"

und dann prüft er sofort, ob in n ein "Ja" oder ein "Nein" drin steht, ohne n neu zu befüllen. Dadurch, dass weder Ja noch Nein drinsteht, werden die Ifs übersprungen und das Programm läuft bis zum Ende.

Antwort
von neeboq, 16

Um was vom User einzulesen brauchst du ne Klasse wie IOTools. Von der Klasse kannst du dann Methoden zum einlesen benutzen.

zB

int abc = IOTools.read.int();

Keine passende Antwort gefunden?

Fragen Sie die Community