for Schleife Abbruchbedingung

absolut85

Mitglied
Hallo Leute,

ich habe ein kleines Programm gemacht, welches beendet werden soll wenn ich einen Punkt einlese. Leider funktioniert das nur am anfang, danach nicht mehr. Jemand eine Idee woran das liegen kann?
Sieht so aus, als ob er irgendwo hängen bleibt, weiß aber leider nicht wie....

Java:
char figure;
		do{
			Out.print("Figur waehlen (L|R|C) ");		  
			figure = In.readChar();		
			drawFigure(figure);
		}while(figure!='.');
		printData(abc);
 
Sorry mein Fehler:

also er fragt ja nach einem Char entweder R, C, oder L
dann gehts weiter in einer anderen Methode.

Wenn ich beim ersten Aufruf einen Punkt also '.' eingebe dann bricht er ab (das soll so sein). also der punkt sagt er soll abbrechen.

Wenn ich aber dann öfter durchgelaufen bin und er fragt zum x Mal nach R, C oder L und ich gib einen Punkt ein, dann schreibt er gar nix hin, macht keinen abbruch und in der eingabe aufforderung sieht es so aus als ob er nicht mehr weiter geht.
 
das das ganze ne uni-aufgabe ist erkennt man schon an dem
Java:
In.readChar()
das wohl größere problem ist der punkt an dem du die abfrage hast ...
deine draw-methode wird wohl mit einem '.' als übergabe nicht klar kommen *ich hoffe aber das sie es doch tut und zumindest sofort returnt* ... und danach wird erst geprüft ob der eingegebene char '.' entspricht ...

do-while ist hier allerdings schon ganz richtig da du ja erstmal in den loop einsteigen musst um in diesem zu prüfen ... jedoch würde ich
Java:
while(true]
verwenden und dann dierekt zwischen einlesen und draw prüfen ... und ggf mit
Java:
break;
abbrechen

*geht das eigentlich oder wirft mir der compiler ein not-reachable wegen while(true) *grade keine möglichkeit ums auszuprobieren*

allgemein sollte das ganze aber so funktionieren ... vorrausgesetzt das die draw-methode mit einem '.' als parameter umgehen kann *sollte wie gesagt mit einem sofortigen return handeln*
 
So wie du es geschrieben hast, sieht er richtig aus. Es handelt um den char-Datentyp, dieser lässt sich mit den Zahl-Operatoren verwenden,
 
do-while ist hier allerdings schon ganz richtig da du ja erstmal in den loop einsteigen musst um in diesem zu prüfen ... jedoch würde ich
Java:
while(true]
verwenden und dann dierekt zwischen einlesen und draw prüfen ... und ggf mit
Java:
break;
abbrechen

@absolut85: dieser Vorschlag ist eine Katastrophe. Endlessloops mit irgendwelchen inneren Abbruchbedingungen machen vielleicht ab und zu Sinn, hier aber ganz klar nicht. Die von dir gepostete Schleife ist vollkommen korrekt. Wenn du einen Fehler hast, wird es wohl die aufgerufenen Methoden in der Schleife betreffen.
 

Zurück
Oben