Return

Luk10

Top Contributor
Ich vestehe nicht wieso das return "" hier noch gebraucht wird ... ist doch eigentlich für jeden fall ein return da

Java:
    public String reifen () {
        if (erntezahl == 0) {
            erntezahl++;
            return "Die Früchte sind noch unreif ... es dauert sicher noch lange!";
        }
        else {
            if (erntezahl == 1) {
            erntezahl++;
            return "Die Früchte reifen herran";
        }
        else {
            if (erntezahl == 2) {
            erntezahl++;
            return "Die Früchte sind reif, bitte ernten!";
        }
     }
  }
    return "";
}

Danke luk
 

Marcel_Handball

Bekanntes Mitglied
Das liegt daran, da du in deinem letzten else Block noch eine if-Anweisung hast.

Wenn erntezahl z.B. gleich 3 ist, würde keiner deiner Bedingungen zutreffen.
 

Landei

Top Contributor
Noch ein paar Anmerkungen:

Die Klammerung der ifs ist furchtbar. Als "Standard" in solchen Fällen hat sich diese Form durchgesetzt:
Java:
if(x == y) {
  //tu was
} else if (a <= b) {
  //tu was anderes 
} else if (u > v) {
  //mache Handstand 
} else {
  //weiss nicht mehr weiter, ruf Mutti an
}

In deinem Beispiel wäre sowieso ein switch viel besser geeignet. Außerdem erhöst du in jedem Zweig die erntezahl, das könntest du einmal vor dem if oder switch erledigen (wobei dann natürlich dort der um eins erhöhte Wert abgefragt werden müsste). Aber ein Profi würde wohl schreiben:
Java:
static final String[] antworten = {"bla","laber","sülz"};

public String reifen () {
   return antworten[erntezahl++];
}
 
Zuletzt bearbeitet:
T

Tomate_Salat

Gast
Noch ein paar Anmerkungen:

Die Klammerung der ifs ist furchtbar. Als "Standard" in solchen Fällen hat sich diese Form durchgesetzt:
Java:
if(x == y) {
  //tu was
} else if (a <= b) {
  //tu was anderes 
} else if (u > v) {
  //mache Handstand 
} else {
  //weiss nicht mehr weiter, ruf Mutti an
}

oder

Java:
if(x == y) 
{
  //tu was
} 
else if (a <= b)
{
  //tu was anderes 
} 
else if (u > v) 
{
  //mache Handstand 
} 
else 
{
  //weiss nicht mehr weiter, ruf Mutti an
}

wobei man bei einzeilern die {} weglässt^^. Ich wollte auch gerade schreiben. Ich hab echt lange gebraucht, bis ich den code entziffert hatte. Das erinnert mich an meine alte infolehrerin die hatte so einen ähnl. stil:

Java:
if(foo) {
    bar();
    } else {
            foo();
            }
 

eRaaaa

Top Contributor
oder

Java:
if(x == y) 
{
  //tu was
} 
else if (a <= b)
{
  //tu was anderes 
} 
else if (u > v) 
{
  //mache Handstand 
} 
else 
{
  //weiss nicht mehr weiter, ruf Mutti an
}

wobei man bei einzeilern die {} weglässt^^.

Na na na, das steht in den code conventions aber anders *g*
(http://java.sun.com/docs/codeconv/html/CodeConventions.doc6.html#430)
Code:
7.4 if, if-else, if else-if else Statements

The if-else class of statements should have the following form: 
if (condition) {
    statements;
}

if (condition) {
    statements;
} else {
    statements;
}

if (condition) {
    statements;
} else if (condition) {
    statements;
} else {
    statements;
}
 

Note: if statements always use braces {}. Avoid the following error-prone form: 
if (condition) //AVOID! THIS OMITS THE BRACES {}!
    statement;

:oops:
 

Tharsonius

Bekanntes Mitglied
Noch ein paar Anmerkungen:

Die Klammerung der ifs ist furchtbar. Als "Standard" in solchen Fällen hat sich diese Form durchgesetzt:
Java:
if(x == y) {
  //tu was
} else if (a <= b) {
  //tu was anderes 
} else if (u > v) {
  //mache Handstand 
} else {
  //weiss nicht mehr weiter, ruf Mutti an
}

Das kommt sehr darauf an.
Die ganzen if sind in einer Spalte, dass das ganze verschachtelt ist sieht man nicht auf den ersten Blick. Da ists deutlich besser jede Ebene einzurücken.

Bei uns in der Firma ist es sogar Vorgabe, dass 1. jede Ebene separat eingerückt wird und die Klammer auch nicht hinter der Zeile steht sondern eine extra Zeile bekommt:
Java:
if()
{
  // irgendwas
}
else
{
  if()
  {
    // was anderes
  }
  else
  {
    // nochwas
  }
}

Und von der Lesbarkeit muss ich sagen sehe ich auf ersten Blick in meiner Variante wie es zusammen hängt und zu welchem if / else welcher Block gehört und wie die alle verschachtelt sind.
 
T

Tomate_Salat

Gast
würde sagen, gewöhnungssache. Wie auch schon gesagt: bei mir im Betrieb muss (soll) ich das auch so ähnl. machen wie bei Tharsonius (ich darf else if benutzen :D ), vorher hatte ich es gemacht wie Landei. Am Anfang war es total ungewohnt, aber jetzt hab ich mich dran gewöhnt und finde den anderen Stil ungewohnt. Aber ich akzeptiere beides, da beides doch gut lesbar ist. Man erkennt bei Landei's variante zwar nichit an den Klammern genau wo eine Schachtelung ist, dafür aber an dem if-else. Aber das vom TO gepostet wurde (oder was meine alte info-Lehrerin fabriziert) geht garnicht
 

Landei

Top Contributor
Das kommt sehr darauf an.
Die ganzen if sind in einer Spalte, dass das ganze verschachtelt ist sieht man nicht auf den ersten Blick. Da ists deutlich besser jede Ebene einzurücken.

Bei uns in der Firma ist es sogar Vorgabe, dass 1. jede Ebene separat eingerückt wird und die Klammer auch nicht hinter der Zeile steht sondern eine extra Zeile bekommt:
Java:
if()
{
  // irgendwas
}
else
{
  if()
  {
    // was anderes
  }
  else
  {
    // nochwas
  }
}

Und von der Lesbarkeit muss ich sagen sehe ich auf ersten Blick in meiner Variante wie es zusammen hängt und zu welchem if / else welcher Block gehört und wie die alle verschachtelt sind.

Würde bei uns nicht funktionieren, da haben wir oft fünf Blöcke und mehr, und die immer tiefer hineinzuschachteln wäre einfach grausam.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
MiMa Java Doc mehrere Return Parameter Java Basics - Anfänger-Themen 11
G 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
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
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
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
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
M Objekto.Programm. Return-Befehl Java Basics - Anfänger-Themen 4

Ähnliche Java Themen


Oben