Endlosschleife

zopffa

Mitglied
Hallo,
mein Algorithmus soll eine Zahl einlesen und einer Variablen zuordnen. Falls die Eingabe ungültig ist soll die Abfrage erneut beginnen. Ich möchte dass mit einer while-Schleife realisieren aber immer bei einer falschen Eingabe komme ich auf eine Endlosschleife und verstehe nicht warum.

Hier das code Fragment:

Java:
while (read == false){
	Out.print("Geben sie eine Zahl ein: ");
	zahl = In.readInt();
	read = In.done();
	}
}

Vielen Dank im vornherein!!

lg
leo
 

zopffa

Mitglied
aso das hab ich jetzt vergessen zu erwähnen: In.done() ist eine boolean variable die anzeigt ob der vorherige lesevorgang erfolgreich war.
 

spantan

Neues Mitglied
aso das hab ich jetzt vergessen zu erwähnen: In.done() ist eine boolean variable die anzeigt ob der vorherige lesevorgang erfolgreich war.

Dann lass dir den Wert doch einfach mal ausgeben. Anscheinend ist er ja auch nach der Eingabe weiterhin auf "false" gesetzt.

Um den Fehler beheben zu können, wirst du uns wohl auch noch den Rest deines Quellcodes zeigen müssen.
 
S

SlaterB

Gast
und was passiert denn bei deiner Endlosschleife?
läuft das Programm von selber, kann man währenddessen nichts eingeben,
erscheinen die Ausgaben ständig hintereinander ohne das auf Eingabe gewartet wird?
oder kann man normal weiter eingeben aber selbst bei korrekter Zahl erfolgt kein Abbruch?

wie soll irgendjemand was dazu sagen? niemand weiß doch was In.readInt() macht, nach welchen Bedingungen In.done() true oder false zurück gibt usw.

du postest Code
unbekannterBefehl1();
unbekannterBefehl2();
und fragst warum das nicht geht..
 

zopffa

Mitglied
So, hier mal die Erkärung zu den Befehlen:



Java:
/** Read an integer.
This method skips white space and tries to read an integer. If the
text does not contain an integer or if the number is too big, the
value 0 is returned and the subsequent call of done() yields false.
An integer is a sequence of digits, possibly preceded by '-'.
*/
public static int readInt() {
  String s = readDigits();
  try {
    done = true;
    return Integer.parseInt(s);
  } catch (Exception e) {
    done = false; return 0;
  }
}

Java:
/** Check if the previous operation was successful.
This method returns true if the previous read operation was able
to read a token of the requested structure. It can also be called
after open() and close() to check if these operations were successful.
If done() is called before any other operation it yields true.
*/
public static boolean done() {
  return done;
}

static { // initializer
  done = true;
  in = System.in;
  buf = empty;
  inputStack = new LinkedList();
  bufferStack = new LinkedList();
  LS = System.getProperty("line.separator").toCharArray();
  if (LS == null || LS.length == 0) {
    LS = new char[] { '\n' };
  }
}

}

und zur zweiten Frage. Wenn die Zahl stimmt funktioniert der Algorithmus aber bei einer Fehleingabe erscheinen die Ausgaben ständig hintereinander ohne das auf Eingabe gewartet wird. Er sollte aber einfach wieder von vorne anfangen.
 
S

SlaterB

Gast
es ist nicht alles zu erkennen, readDigits() fehlt als nächstes,
weiterhin kann im Grunde niemand erraten warum readInt() nichts macht,

das ist doch verständlich oder? warum sollte jemand wissen wo der Fehler liegt,
nur dein Aufruf in der Schleife ist doch keine wirklich plausible Ursache

eine Ahnung kann man immerhin dennoch haben:
bei der Java-Klasse Scanner ist es so, dass ein fehlerhaft eingelesener int im Input stecken bleibt,
dieselben Zeichen das nächste Mal wieder gelesen werden,
erst durch irgendeinen clear()-Aufruf kann was neues versucht werden,

mag sein dass das bei dir auch so ist, dann wäre deine Frage ja doch etwas erfolgreich ;)

zwar sehe ich nicht wirklich, wie das im Code bei erfolgreichen Lesen gehandhabt wird,
andererseits sehe ich das im Scanner-Code gerade auch nicht wirklich..,
und kann bei dir auch in readDigits() stehen
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Hilfe bei Endlosschleife Java Basics - Anfänger-Themen 2
B In einem Thread Endlosschleife beenden Java Basics - Anfänger-Themen 19
noah1407 endlosschleife Java Basics - Anfänger-Themen 7
G Endlosschleife keine Rückgabe Java Basics - Anfänger-Themen 36
sserio Endlosschleife ja nein? Java Basics - Anfänger-Themen 13
javapingu Endlosschleife bei User Input mit try Scanner Java Basics - Anfänger-Themen 7
B Endlosschleife Thread sauber beenden Java Basics - Anfänger-Themen 19
S While-Schleife geht in Endlosschleife über, warum? Java Basics - Anfänger-Themen 6
O Endlosschleife abbrechen Java Basics - Anfänger-Themen 10
S Endlosschleife beim Ausgeben einer LinkedList Java Basics - Anfänger-Themen 2
S Interpreter-Fehler Endlosschleife zur Laufzeit aber warum? Java Basics - Anfänger-Themen 15
T Erste Schritte Endlosschleife & wozu braucht man /* und */ Java Basics - Anfänger-Themen 19
J Endlosschleife bei Try-Catch? Java Basics - Anfänger-Themen 3
S Endlosschleife - Warum? Java Basics - Anfänger-Themen 1
C Endlosschleife bei füllen von Daten im JTable Java Basics - Anfänger-Themen 5
C Collatzfolge endlosschleife. Java Basics - Anfänger-Themen 4
D Array in Endlosschleife überschreibt vorherige Werte Java Basics - Anfänger-Themen 4
E Eulersche Zahl berechnen, Endlosschleife Java Basics - Anfänger-Themen 2
N Endlosschleife... Warum? Java Basics - Anfänger-Themen 12
P Kapselung Problem - Endlosschleife Java Basics - Anfänger-Themen 10
M Endlosschleife bricht durch switch ab Java Basics - Anfänger-Themen 17
D Endlosschleife und ich komme nicht raus! Java Basics - Anfänger-Themen 8
N Erste Schritte Endlosschleife und Exception Java Basics - Anfänger-Themen 5
R Endlosschleife nach InputMismatchException Java Basics - Anfänger-Themen 2
S Endlosschleife? Java Basics - Anfänger-Themen 2
T Endlosschleife Java Basics - Anfänger-Themen 2
T Endlosschleife Java Basics - Anfänger-Themen 12
H Wieso ist das eine Endlosschleife? Java Basics - Anfänger-Themen 8
StupidAttack Endlosschleife, Sockets Java Basics - Anfänger-Themen 2
C ungewollte Abbrüche in einer Endlosschleife Java Basics - Anfänger-Themen 6
E komische endlosschleife Java Basics - Anfänger-Themen 6
7 Endlosschleife pausieren Java Basics - Anfänger-Themen 11
F .readLine() erzeugt endlosschleife Java Basics - Anfänger-Themen 4
R Wieso hänge ich hier in einer Endlosschleife (vermute ich zumindest)? Java Basics - Anfänger-Themen 2
F Falscheingabe abfangen - Endlosschleife Java Basics - Anfänger-Themen 5
R warum endlosschleife? Java Basics - Anfänger-Themen 7
W Fakultät, warum Endlosschleife? Java Basics - Anfänger-Themen 15
S JTable Endlosschleife Java Basics - Anfänger-Themen 5
J Aus endlosschleife kommen Java Basics - Anfänger-Themen 5
R Endlosschleife verhindert das Schließen des Fensters Java Basics - Anfänger-Themen 10
Povlsen84 Endlosschleife Java Basics - Anfänger-Themen 5
V Bubble Sort endet in Endlosschleife Java Basics - Anfänger-Themen 4
Antoras Endlosschleife Java Basics - Anfänger-Themen 8
J Wartezustand in Endlosschleife - bessere Alternativen Java Basics - Anfänger-Themen 20
H Problem beim Einlesen einer Datei (Endlosschleife ?) Java Basics - Anfänger-Themen 3
N Endlosschleife? Java Basics - Anfänger-Themen 3
V mehrere Threads starten + Endlosschleife Java Basics - Anfänger-Themen 3
I Hilfe wer findet mein Fehler in bei der Endlosschleife Java Basics - Anfänger-Themen 7
G Sound/Endlosschleife/Abbruchproblem Java Basics - Anfänger-Themen 3
G HappyNumbers - Endlosschleife Java Basics - Anfänger-Themen 11
0 Endlosschleife beim Integer Array mischen? Java Basics - Anfänger-Themen 3
M OutputStream funktioniert nur in Endlosschleife ? Java Basics - Anfänger-Themen 4
G Endlosschleife, aber warum? Java Basics - Anfänger-Themen 12
G Endlosschleife beenden Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben