Methoden Missing return statement; Intervallschachtellung

Isilein

Mitglied
Hey Leute, muss eine Methode schreiben, die den Logarithmus per Intervallschachtellung und ohne Rekursion berechnet, allerdings kommt im Java-Compiler immer die Meldung "missing return statement". Könnt ihr mir sagen, was ich ändern muss?

public static double logarithmus (int x, int b){

double min = 0.0;
double max = 3.0;

boolean suchen = true;

while (suchen){
double test = (min+max)/2;
double c = Math.pow(b,test);

if(c>x){
test=min;
}
else if(c<x){
test=max;
}
else if(c==x){
suchen=false;
return test;

}

}
}
 
M

Marcinek

Gast
Ist der Hinweis auf die Javatags bei dir nicht vorhanden?

Am Ende der Methode fehlt ein Return.

Wenn nix von den ifs zutrifft.

In deinem Fall kann das nicht passieren, aber das weiß der Compiler nicht.
 

tfa

Top Contributor
Erstmal solltest du deinen Quelltext in
Java:
-Tags schreiben. Das erhöht die Chance, dass ihn jemand liest.
Dann muss die Methode immer einen double-Wert zurück liefern, egal, welcher Zweig der if-else-Anweisung abgearbeitet wird. Am besten machst du nur ein return ganz am Ende der Methode.
 

Landei

Top Contributor
Erst einmal solltest du den großen roten Text über der Eingabebox beachten und Java-Tags für deinen Code verwenden, das steigert die Hilfsbereitschaft ungemein.

Der Compiler fragt sich, was die Methode zurückgeben soll, wenn die while-Schleife einmal regulär (also wenn such = false wird) verlassen wird. Er kann nicht wissen, dass das bei dir nie passiert. Im Prinzip kannst du dir die Variable such sprachen, und gleich eine Endlosschleife programmieren (was dann auch der Compiler versteht):

Java:
while (true){
    double test = (min+max)/2;
    double c = Math.pow(b,test);

    if(c > x){
        test=min;
    } else if(c < x) {
        test=max;
    } else { 
       return test;
    }
}

Ich gebe jedoch zu bedenken, dass [c]c == x[/c] durch Rundungsfehler eventuell nie erreicht wird. Üblicherweise gibt man eine sehr kleine Maximalabweichung vor (wie EPSILON = 0.0000001), und testet auf [c]Math.abs(c - x) < EPSILON[/c].
 

Isilein

Mitglied
[Java]if(c>x){
test=min;
}
else if(c<x){
test=max;
}
else if(c==x){
suchen=false;
}
}
return test;
}[/code]

wenn ichs so schreibe, kommt die Meldung "cannot find symbol" bei "return test;",verzweifel langsam echt:S
sorry für die dummen Frage, aber bin leider blutiger Anfänger, was Programmiersprachen betrifft...
 
B

bygones

Gast
Nein, das wäre hier falsch. Wenn, dann muss das return nicht nur hinter das else, sonder hinter die while-Schleife. Das Problem ist nämlich, dass der Compiler nicht erkennt, dass es sich hier "eigentlich" um eine Endlos-Schleife handelt.
oeh war auch so gemeint.... dem anschein nach zu knapp ausgedrueckt
 
M

Marcinek

Gast
wenn ichs so schreibe, kommt die Meldung "cannot find symbol" bei "return test;",verzweifel langsam echt:S
sorry für die dummen Frage, aber bin leider blutiger Anfänger, was Programmiersprachen betrifft...

Dummerweise hat das nix mit Programmiersprachen zu tun, sondern mit reinen Menschenverstand.

Gib doch mal "cannot find symbol" bei google ein. Offensichtlich hast du die Variable nicht deklariert oder sie ist dort nicht sichtbar.
 

poku17

Mitglied
test nicht erst in der Schleife, sondern schon davor deklarieren.
Denn variablen die du in einer schleife deklariert sind auch nur innerhalb dieser sichtbar..
 
Zuletzt bearbeitet:

Isilein

Mitglied
Dummerweise hat das nix mit Programmiersprachen zu tun, sondern mit reinen Menschenverstand.

Dummerweise hat das nichts mit Verstand zu tun, sondern mit "Verständnis" (google mal den Unterschied zwischen den zwei Wörtern) und das fehlt einem noch, wenn man gerade erst-gezwungenerweise- begonnen hat, sich mit Java auseinanderzusetzen.
Trotzdem Danke für den Hinweis.
 

Xtr3m3 Lucky

Mitglied
Hallo,
das return muss aus der Schleife entweder raus und unter diese, oder es muss in jeden Case der Schleife.
Der Compiler weis sonst nicht was er im Falle des ersten Case zurückliefern soll...

Hoffe das hilft
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Missing Return Statement Java Basics - Anfänger-Themen 11
T Boolean Missing return Statement?! Java Basics - Anfänger-Themen 2
P Compiler-Fehler Boolean: Missing Return Statement Java Basics - Anfänger-Themen 4
M missing return statement?! Java Basics - Anfänger-Themen 4
A Missing return-Statement Java Basics - Anfänger-Themen 9
T missing return statement Java Basics - Anfänger-Themen 36
E missing return statement Java Basics - Anfänger-Themen 6
C missing return statement Java Basics - Anfänger-Themen 5
dognose missing Return Statement Java Basics - Anfänger-Themen 4
G Missing return Statement Java Basics - Anfänger-Themen 2
R "missing return statement"? Java Basics - Anfänger-Themen 2
G missing return statement Java Basics - Anfänger-Themen 5
M missing return statement Java Basics - Anfänger-Themen 4
S Missing return Java Basics - Anfänger-Themen 4
Luk10 Return missing Java Basics - Anfänger-Themen 6
Syncopated Pandemonium Compiler-Fehler The constructor MP3File(File) refers to the missing type NoMPEGFramesException Java Basics - Anfänger-Themen 7
U Jar ist "missing" Java Basics - Anfänger-Themen 2
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
JD_1998 Hilfsmethode if return funktioniert nicht Java Basics - Anfänger-Themen 2
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
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
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
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
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

Ähnliche Java Themen

Neue Themen


Oben