return funktioniert nicht bzw. wird ignoriert

Status
Nicht offen für weitere Antworten.

automatix

Aktives Mitglied
Hallo Forum!

So sieht die ursprüngliche Methode aus (ich hab sie aus dem Web):

Code:
	public static char readChar() {
		BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
		String line="";
		System.out.flush();
		try {
			line=reader.readLine();
			if (line.length()>0) return line.charAt(0);
		} catch (Exception e) {
			System.out.println(e);
		}
		return ' ';
	}

Der User soll eine Eingabe machen, das erste Zeichen der Zeichenkette ist der Rückgabewert der Methode:

Code:
		InPut myInput_1 = new InPut();
		String inputString = myInput_1.readString();
		System.out.println(inputString);

Soweit so gut.

Nun lautet die Aufgabe, die Methode so umzubasteln, dass eine gültige Eingabe (ein Character) erzwungen wird.

Code:
	public static char readChar(boolean enforce) {
		System.out.println("Versuch");
		if(!enforce) {
			readChar();
		} else {
			BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
			String line="";
			System.out.flush();
			try {
				line=reader.readLine();
				if (line.length()!=1)
				{
					readChar(true);
				} else {
					System.out.println(line.charAt(0) + "-bebebe");
					return line.charAt(0);
				}
			} catch (Exception e) {
				System.out.println(e);
			}
		}
		return 'r';
		
	}

Die Methode guckt, ob die eingegebene Zeichenkette ein Zeichen lang ist; falls ja, soll das Zeichen an der nullten Stelle (also das einzige Zeichen) der Zeichenkette zurückgegeben werden; falls nein, wird die Methode wieder aufgerugen.

Der Code in der Main-Classe:

Code:
		ReadChar myInput_2 = new ReadChar();
		char inputChar = myInput_2.readChar(true);
		System.out.println(inputChar);

Nun gibt es ein Prblem: die return-Anweisung im else-Block wird ignoriert. Nur, wenn gleich beim ersten Versuch eine gültige Eigabe gemacht wurde, kriegt man das Eingegebene auch als return-Wert -- ansonsten wird die return-Anweisung im esle-Block übersprungen und man bekommt dem entsprechend immer den Standard-Rückgabewert ('r') zurück... (Es wird nicht der ganze else-Block übersprungen -- s. syso(bebebe) -- sondern nur das return.)

Was mache ich falsch?

Danke.
 

Campino

Top Contributor
Nein, die return- Anweisung wird nicht ignoriert.
Bei erneutem Aufruf ist enforce ist enforce true, das Ding geht also nicht in den if- Teil (was soll der eigentlich bringen? Bei enforce=false wird im Moment IMMER 'r' zurückgegeben. Ich nehme an, dass du nicht verstehst, warum? Selber Fehler wie im else- Teil).
Im else- Teil liest er ein, prüft wie lang die Kette ist und gibt entweder das Zeichen aus ODER ruft neu auf. Die neu aufgerufene Methode gibt jetzt das Zeichen in die ursprüngliche Methode zurück, die verarbeitet es aber NICHT, sondern verlässt den else- Teil, erreicht also das return 'r'. Es fehlt schlicht und einfach ein weiteres return. Wo, musst du jetzt selbst herausfinden ;)
 

automatix

Aktives Mitglied
Hallo! Danke für die prompte Antwort!

> was soll der eigentlich bringen?
Wird die Methode ohne Parameter bzw. mit enforce=false aufgerufen, so soll die überladene parameterlose Methode readChar aufgerufen werden. Das ist die Idee. Du hast aber Recht -- das wird so nicht funktionieren, man brauch eine return-Anweisung in Zeile 4:

Code:
			return readChar();

> Selber Fehler wie im else- Teil

Und wieder muss man Dir zustimmen... :) Zeile 13:

Code:
					return readChar(true);

Jetzt läuft alles. Vielen Dank!
 

automatix

Aktives Mitglied
Heute ist nicht mein Tag... Das ist jezt schon der zweite Doppelbeitrag... Liebe Moderatoren, würden Sie den bitte löschen. Danke.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
JD_1998 Hilfsmethode if return funktioniert nicht Java Basics - Anfänger-Themen 2
B Statische Methode return funktioniert nicht. Java Basics - Anfänger-Themen 19
G return funktioniert nicht Java Basics - Anfänger-Themen 7
MiMa Java Doc mehrere Return Parameter Java Basics - Anfänger-Themen 11
A Return in While Schleife Java Basics - Anfänger-Themen 6
J Rekursive Funktion und return statement Java Basics - Anfänger-Themen 3
SUPERTJB return Problem Java Basics - Anfänger-Themen 3
M Warum return die Methode den Wert nicht Java Basics - Anfänger-Themen 5
S Methoden Return Rückgabewert wird nicht übergeben Java Basics - Anfänger-Themen 8
schredder Strings und reguläre Ausdrücke - Methode mit return string.matches Java Basics - Anfänger-Themen 5
I Return Array Java Basics - Anfänger-Themen 4
Q return Ausgabe Java Basics - Anfänger-Themen 4
javapingu Variablenwerte ändern ohne return Statement? Java Basics - Anfänger-Themen 7
C Ausgabe boolean return ((n==9)||(n==0)); Java Basics - Anfänger-Themen 13
G return 1 + methode Java Basics - Anfänger-Themen 4
H Methode mit Array als Rückgabe This method must return a result of Type int[] Java Basics - Anfänger-Themen 2
J Missing Return Statement Java Basics - Anfänger-Themen 11
T Return einer anderen Methode herausfinden Java Basics - Anfänger-Themen 9
C ArrayList mit return zurückgeben Java Basics - Anfänger-Themen 13
M kann man return in nur einer Methode einsetzen? Java Basics - Anfänger-Themen 7
V return String[] führt zu [Ljava.lang.String;@50675690 Java Basics - Anfänger-Themen 7
K Return in Schleife Java Basics - Anfänger-Themen 4
S Missing return Java Basics - Anfänger-Themen 4
das_leon return message Java Basics - Anfänger-Themen 2
C return kann nicht auf variable zugreifen Java Basics - Anfänger-Themen 26
N Ausführung gibt keinen Fehler an, Return wird aber nicht ausgegeben Java Basics - Anfänger-Themen 22
R return: cannot find symbol Java Basics - Anfänger-Themen 2
R Ratespiel mit Return und einer Eingabe Java Basics - Anfänger-Themen 1
Z Return in While-Schleife Java Basics - Anfänger-Themen 7
N Frage zu this, super und return Java Basics - Anfänger-Themen 13
K ArrayList ausgeben mit return Java Basics - Anfänger-Themen 6
M Return statement Java Basics - Anfänger-Themen 4
J-Gallus Ein Getter bekommt eine anderen Type als er Return soll Java Basics - Anfänger-Themen 9
J Variablen Komsiche System.in.read() return-value? Java Basics - Anfänger-Themen 3
M Abbrechen Methode ohne return Java Basics - Anfänger-Themen 3
M Methoden Datei einlesen und als return übergeben. Java Basics - Anfänger-Themen 8
L OOP Return Java Basics - Anfänger-Themen 10
L Erste Schritte Frage zu 'return' Java Basics - Anfänger-Themen 4
J Methoden Rekursive Return Methode Java Basics - Anfänger-Themen 2
W Return statement in Methode nur bei if-clause Java Basics - Anfänger-Themen 3
D Methoden Return-Wert wird nicht ausgegeben Java Basics - Anfänger-Themen 3
F Return-Anweisung Java Basics - Anfänger-Themen 2
E Erste Schritte <? super Unterklasse> Return-Typ darf nicht vom Wildcard-Typ sein Java Basics - Anfänger-Themen 5
B OOP Methode mit Array mit return verlassen Java Basics - Anfänger-Themen 8
J Grundsätzliche Frage zu return Types in Methoden Java Basics - Anfänger-Themen 6
G return-wert für eine Methode Java Basics - Anfänger-Themen 1
B Methoden Probleme mit for Schleife und return Java Basics - Anfänger-Themen 5
Q Tastatureingabe direkt nach Eingabe (ohne zwischenzeitliches "Return" o.Ä ) weiterverwenden Java Basics - Anfänger-Themen 1
B Variablen Problem mit return String[] Java Basics - Anfänger-Themen 4
O Per return Run Methode beenden Java Basics - Anfänger-Themen 3
M Arrays als return Value? Java Basics - Anfänger-Themen 2
C Return statement Java Basics - Anfänger-Themen 10
T Boolean Missing return Statement?! Java Basics - Anfänger-Themen 2
Z Methoden return nullprüfung Java Basics - Anfänger-Themen 7
O Java return in Schleife Java Basics - Anfänger-Themen 4
K Was macht hier genau return? Java Basics - Anfänger-Themen 2
G Methoden Was bedeutet return in einer Methode Java Basics - Anfänger-Themen 5
Y Warum void statt Datentyp + return Java Basics - Anfänger-Themen 4
K Variablen RETURN in Case-Switch / This method must return a result of type Item Java Basics - Anfänger-Themen 4
K Erste Schritte "return" Problem bei Rekursion Java Basics - Anfänger-Themen 8
R If Verschachtelung und return; Java Basics - Anfänger-Themen 4
M Frage zum return; Befehl Java Basics - Anfänger-Themen 1
S try-catch - Variablen werden nicht an return übergeben Java Basics - Anfänger-Themen 3
C Einige Anfängerfragen (Return-Wert, Exception...) Java Basics - Anfänger-Themen 11
S Methoden Return Java Basics - Anfänger-Themen 8
T return-Wert verwenden? Java Basics - Anfänger-Themen 12
T Return eines Int-Werts? Java Basics - Anfänger-Themen 3
W return-Anweisung gibt nichts aus Java Basics - Anfänger-Themen 5
R Return in If Java Basics - Anfänger-Themen 10
S Methoden Return Anweisung beendet Methode nicht, stattdessen wird diese zweimal durchlaufen Java Basics - Anfänger-Themen 3
G array return methode Java Basics - Anfänger-Themen 10
L return wird nicht erkannt? Java Basics - Anfänger-Themen 3
J Regex mit Return Java Basics - Anfänger-Themen 3
M Variablen return-array klonen Java Basics - Anfänger-Themen 3
A Methode mit Array als Param --> return Array --> Fehler Java Basics - Anfänger-Themen 3
S Zeichen einlesen ohne Return? Java Basics - Anfänger-Themen 19
P Compiler-Fehler Boolean: Missing Return Statement Java Basics - Anfänger-Themen 4
S probleme mit der return anweisung Java Basics - Anfänger-Themen 20
E Warum wird Methode nicht durch return-Befehl beendet? Java Basics - Anfänger-Themen 3
V Erste Schritte Return ohne Argument Java Basics - Anfänger-Themen 6
I Methoden Missing return statement; Intervallschachtellung Java Basics - Anfänger-Themen 12
S Frage zu Vererbung und return. Java Basics - Anfänger-Themen 4
R return (mehrere floats) Java Basics - Anfänger-Themen 11
E Return String Java Basics - Anfänger-Themen 10
P Methoden Methode ohne return abbrechen? Java Basics - Anfänger-Themen 12
I Return Befehl in Methode Java Basics - Anfänger-Themen 13
M Problem mit boolean. Return nicht erkannt Java Basics - Anfänger-Themen 10
P Return aus For-Schleife Java Basics - Anfänger-Themen 19
S return in GUI ? Java Basics - Anfänger-Themen 12
M This method must return a result of type int Java Basics - Anfänger-Themen 13
F Erste Schritte return (char)toUnsignedInt(value) Java Basics - Anfänger-Themen 2
A Falscher Return-Wert Java Basics - Anfänger-Themen 2
M missing return statement?! Java Basics - Anfänger-Themen 4
L Return Fragen Java Basics - Anfänger-Themen 4
R Nach return() der aufgerufenen Methode wird aufrufende Methode nicht weiter ausgeführt Java Basics - Anfänger-Themen 14
I Null als return obwohl datensatz existiert Java Basics - Anfänger-Themen 12
S this method must return a result of type double Java Basics - Anfänger-Themen 2
V Problem mit return Java Basics - Anfänger-Themen 7
K Return Problem Java Basics - Anfänger-Themen 3
M Fragen zu Methoden (void/return), Übergabe von Parametern Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben