Return String

ehlr

Aktives Mitglied
Hallo,
Möchte einen String Variable returnen.
Leider wird return ausgabe unterkringelt.

Java:
public class game {

	
	public static String wahl(int a) {
		 
		
		if (a == 1) {
			 String ausgabe  = "Stein";
		}
		
		if (a == 2) {
			String ausgabe = "Schere";
		}
		
		if (a == 3) {
			String ausgabe = "Papier";
		}
			

		return ausgabe;
	}
	
	
}
 

Kiri

Bekanntes Mitglied
Java:
public class game {

	
	public static String wahl(int a) {
		 
		String ausgabe;
		if (a == 1) {
			 ausgabe  = "Stein";
		}
		
		if (a == 2) {
			ausgabe = "Schere";
		}
		
		if (a == 3) {
			ausgabe = "Papier";
		}
			

		return ausgabe;
	}
	
	
}

So müsste es lauten, ansonsten ist ausgabe jeweils nur IN den If-Zweigen bekannt!

[EDIT]Außerdem hast du drei Variablen mit gleichem Namen "ausgabe" deklariert.[/EDIT]
 
Zuletzt bearbeitet:

ehlr

Aktives Mitglied
Musst es noch als Null deklarieren, sonst kam der Fehler wieder!
Danke!!!


Also hier fehlerfrei :

Java:
public class game {
 
    
    public static String wahl(int a) {
         
        String ausgabe = null;
        if (a == 1) {
             ausgabe  = "Stein";
        }
        
        if (a == 2) {
            ausgabe = "Schere";
        }
        
        if (a == 3) {
            ausgabe = "Papier";
        }
            
 
        return ausgabe;
    }
    
}
 

xehpuk

Top Contributor
Außerdem hast du drei Variablen mit gleichem Namen "ausgabe" deklariert.
… was kein Problem darstellen sollte, da sie nur in den jeweiligen if-Blöcken sichtbar sind.
Wie bereits erwähnt, war dein Code auch nicht lauffähig.

Diese Vorgehensweise ist auch nicht optimal, da immer alle drei if-Abfragen durchlaufen werden. Daher entweder if-else oder schöner switch:
Java:
public static String wahl(final int a) {
	switch (a) {
		case 1:
			return "Stein";
		case 2:
			return "Schere";
		case 3:
			return "Papier";
		default:
			return null;
	}
}
Literale solltest du übrigens als Konstanten definieren. Außerdem könntest du dir überlegen, eine IllegalArgumentException zu schmeißen, statt null zurückzugeben.
 

VfL_Freak

Top Contributor
Moin,

Musst es noch als Null deklarieren, sonst kam der Fehler wieder!
Java:
String ausgabe = null;

Nein, besser als leeren String initialisieren !!
Java:
String ausgabe = "";
Bei größeren Projekten gibt es sonst garantiert irgendwann, irgendwo eine Stelle, wo sowas mit 'ner NPE knallt .... ;)

Gruß
Klaus
 

tfa

Top Contributor
Wenn der leere String doch aber falsch ist, sollte lieber eine Exception fliegen, als dass man mit falschen Werten weiter rechnet. Gerade in großen Projekten. Die Idee mit der IllegalArgumentException ist natürlich noch besser.
 

ehlr

Aktives Mitglied
Da die zu übergebene Variable immer gleich ist und von einem Button ausgelöst wird, ist meiner Meinung nach keine Exception notwenig. Es wird also eine Zufallszahl übergeben.
 

VfL_Freak

Top Contributor
Moin,
Da die zu übergebene Variable immer gleich ist und von einem Button ausgelöst wird, ist meiner Meinung nach keine Exception notwenig. Es wird also eine Zufallszahl übergeben.
Na ja, wenn Du meinst .... :pueh:

Das mag auch im Moment vielleicht stimmen - aber eine solche Annahme (wie sagen die Kölner so schön: "es het noch immer jod jejange" ....) ist aber ganz sicher eine potentielle Gefahrenquelle.
Spätestens wenn Du irgendwann einen weiteren Button einbaust, der dann vielleicht der erwarteten Wert NICHT liefert (ob gewollt oder fehlerhafterweise), bekommst hier ein Problem !

Ergo ist die Idee mit der Exception ist also wirklich gut und macht die Stelle in Deiner Software sicherer !

Gruß
Klaus
 
B

bygones

Gast
sobald man mit switch arbeitet sollte der default fall eine Exception werfen (ausnahmen gibt es).

Java:
public static String wahl(final int a) {
    switch (a) {
        case 1:
            return "Stein";
        case 2:
            return "Schere";
        case 3:
            return "Papier";
        default:
            throw new IllegalArgumentException("cant handle " + a);
    }
}
vor allem bei Enums ist das essentiell. Wenn sich enums erweitern, man aber vergisst alle zugehoerigen switches zu aendern laeuft man Gefahr mit falschen werten zu rechnen und die Stellen an sich fallen nicht auf.

Dazu einen Unittest der alle enums (gueltigen Optionen) testet und man ist immer auf der sicheren seite
 

faetzminator

Gesperrter Benutzer
Nein, besser als leeren String initialisieren !!

Das ist wieder eine Verallgemeinerung. Ich würde in diesem Fall (abgesehen davon, dass ich eine Exception schmeissen würde) sicher nicht [c]""[/c] an Stelle von [c]null[/c] zurückgeben. Wenn du/ihr in deinen/euren Projekten nicht unterscheiden könnt, wann etwas nicht vorhanden ([c]null[/c]), und wann etwas leer (sei es nun String, List, ...) sein muss, dann ist das nicht unser Problem :bae:
 

VfL_Freak

Top Contributor
Moin,

Das ist wieder eine Verallgemeinerung. Ich würde in diesem Fall (abgesehen davon, dass ich eine Exception schmeissen würde) sicher nicht [c]""[/c] an Stelle von [c]null[/c] zurückgeben. Wenn du/ihr in deinen/euren Projekten nicht unterscheiden könnt, wann etwas nicht vorhanden ([c]null[/c]), und wann etwas leer (sei es nun String, List, ...) sein muss, dann ist das nicht unser Problem :bae:

Zumindest die letzten fünf Worte kann ich voll inhaltlich unterschreiben :D

Gruß
Klaus
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
schredder Strings und reguläre Ausdrücke - Methode mit return string.matches Java Basics - Anfänger-Themen 5
V return String[] führt zu [Ljava.lang.String;@50675690 Java Basics - Anfänger-Themen 7
B Variablen Problem mit return String[] Java Basics - Anfänger-Themen 4
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
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
JD_1998 Hilfsmethode if return funktioniert nicht 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
K Return in Schleife Java Basics - Anfänger-Themen 4
B Statische Methode return funktioniert nicht. Java Basics - Anfänger-Themen 19
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
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
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
M Objekto.Programm. Return-Befehl Java Basics - Anfänger-Themen 4
R warum liefert ein und dieselbe funktion nicht dasselbe return?? Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben