1Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
8
8
ZUGRIFFE
360
360
EMPFEHLEN
-
wieso gibt das hier eine endlosschleife
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
InputStreamReader isr = new InputStreamReader ( System.in ); BufferedReader stdin = new BufferedReader ( isr ); try { input = stdin.readLine(); } catch (IOException e) { e.printStackTrace(); } while(beenden==0){ if(input.equals("w")){ System.out.println("hoch"); } else if(input.equals("a")){ System.out.println("links"); } else if(input.equals("s")){ System.out.println("runter"); } else if(input.equals("d")){ System.out.println("rechts"); } else if(input.equals("e")){ beenden = beenden + 1; } }
danke für eure hilfe
gruß tameck
-
Weil dein beenden, wohl nie den Wert aendert. Wenn deine erste Eingabe ein "e" ist, duerfte keine Endlosschleife kommen, sonst immer.
-
27.11.07 10:27 #3
Jetzt mal ohne deinen Code gelesen zu haben. Mach mal einen System.out und check mal ob überhaupt jemals eine Abbruchsbedingung eintritt (ist die Variabla "beenden" jemals was anderes als 0)
"... Jeder von uns ist Kunst... gezeichnet vom Leben" (Casper)
"Sir?, we're sorrounded!"
"Excellent, we can attack in any direction"
-
das komische dabei ist ich verwende diese schleife in einem anderem programm genauso und da gibts es keine endlosschleife ..
-
27.11.07 10:29 #5
Dann poste doch mal den ganzen Code
"... Jeder von uns ist Kunst... gezeichnet vom Leben" (Casper)
"Sir?, we're sorrounded!"
"Excellent, we can attack in any direction"
-
Das muss zwangsläufig eine Endlosschleife ergeben. Geht doch gar nicht anders.
Wenn du das input = stdin.readLine(); mit in der Schleife drin hättest, würde es funktionieren, aber so wie es jetzt ist, liest er doch nur ein einziges Mal einen Buchstaben ein und überprüft danach nur noch, ob sich der Wert von beenden geändert hat (wobei der sich ja innerhalb der Schleife gar nicht ändern kann, außer der erste und einzige eingelesene Buchstabe war ein e).
-
Hallo,
schau mal, du liest doch ein und dann beginnt deine Schleife. Das heißt die Variable input wird einmal gesetzt und dann kommt das Programm in die Schleife. Da sich die Variable ja nie ändert wird beenden auch nicht neu gesetzt.
Wie ist denn der Anfangswert von beenden?
MFG
zEriXEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
Code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
public void bewegespielfigur() { InputStreamReader isr = new InputStreamReader ( System.in ); BufferedReader stdin = new BufferedReader ( isr ); try { input = stdin.readLine(); } catch (IOException e) { e.printStackTrace(); } while(beenden==0){ if(input.equals("w")){ System.out.println("hoch"); } else if(input.equals("a")){ System.out.println("links"); } else if(input.equals("s")){ System.out.println("runter"); } else if(input.equals("d")){ System.out.println("rechts"); } else if(input.equals("e")){ beenden = beenden + 1; } } } }
-
danke habs hinbekommen
@zerix danke deine antwort hat mir geholfen
Ähnliche Themen
-
Warum <div/> statt <span/> - Warum muss ich <a/> formatieren ?
Von angelikamorgan im Forum CSSAntworten: 4Letzter Beitrag: 26.08.08, 14:50 -
Batch For endlosschleife aber warum? Bitte um hilfe
Von wannabeapro im Forum Sonstige SprachenAntworten: 4Letzter Beitrag: 12.09.07, 14:11 -
endlosschleife
Von andulus im Forum PHPAntworten: 9Letzter Beitrag: 08.12.05, 19:17 -
Warum Endlosschleife?
Von Oliver Gierke im Forum JavaAntworten: 4Letzter Beitrag: 20.12.04, 15:14 -
warum ergibt das ne endlosschleife?
Von Rios im Forum PHPAntworten: 9Letzter Beitrag: 16.10.02, 15:32





Zitieren

Login





