Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hab eine Methode geschrieben, die testen soll ob eine Zahl ein Primzahl ist oder nicht und entsprechend true oder false zurückgeben soll.
Bekomme jedoch die Fehlermeldung: "This method must return a result of type boolean".
Ich war mir auch etwas unsicher was die Syntax angeht, da ich so viele geschweifte Klammern benutzt habe. Ist das ein Problem, wie ich das gemacht habe?
Java:
public class Test3 {
public static void main (String[] args){
}
public static boolean isPrime(int a){
for (int i=1; i<=a/2; i++){
if(a<=2){return false;} else {
if(a%i==0){return false;} else {
return true;}
}
}
}
}
Nachträglich editiert und jetzt auf unwissend tun.
Es ist wie @Meniskusschaden schrieb, die Methode könnte möglicherweise nix zurückgeben ... muss aber immer etwas zurückgeben.
Der compiler bewahrt dich davor.
Hm, ich dachte ich hätte alle Fälle abgedeckt. Ich hab den Code doch so geschrieben dass er, wenn a<=2 ist falsch zurückgibt. Wenn a%i==0 ist, dann soll er auch falsch zurückgeben und falls diese beiden Fälle nicht eintreten dann soll er wahr zurückgeben. Somit hab ich doch alle Fälle abgedeckt, oder nicht? Ich sehe da das Problem nicht... :/
Selbes Problem..
Du musst sicherstellen, dass er immer einen return Wert hat.
Wenn er nicht in die Schleife rein geht, dann hast du momentan noch keinen return Wert.
Ich habe mir das jetzt mehrmals angeguckt aber ich komme einfach nicht drauf, was ich da machen muss. Hab mich jetzt hingesetzt und nochmal einen neuen Code geschrieben, der jetzt auch ein bisschen anders aussieht, aber habe einfach wieder genau das gleiche Problem. Es kommt nämlich die Fehlermeldung, dass die Methode einen boolean Wert zurückgeben MUSS. Ich sehe aber den Fehler einfach nicht. Würde mich sehr freuen, wenn mir jemand weiterhelfen könnte.
PS: Ich habe auch versucht einfach mal am Ende der Methode und AUßERHALB der Schleifen "return true;" zu schreiben. Damit wäre doch sichergestellt, dass die Methode auf jeden Fall einen boolean Wert zurückgibt, jedoch hat nicht mal das den Fehler behoben. Ich weiss echt nicht mehr weiter...
Hier der neue Code:
Java:
public class Ausgabe2 {
public static boolean Prime(int a){
int c = 0;
while (c!=100){
if (a<=2) {return false;}
if (a==3) return true; c++; // Das hab ich geschrieben, weil mir aufgefallen ist, dass die Bedinging der for Schleife in Zeile 8 für die Zahl 3 nicht erfüllt ist.
for (int i=2; i<=a/2; i++){
if (a%i==0) {return false;} else
if (a%i!=0 && i==a/2){c++; return true;}
}
}
}
public static void main (String[] args) {
int a = 1;
Prime(a);
}
}
Ich habe auch versucht einfach mal am Ende der Methode und AUßERHALB der Schleifen "return true;" zu schreiben. Damit wäre doch sichergestellt, dass die Methode auf jeden Fall einen boolean Wert zurückgibt, jedoch hat nicht mal das den Fehler behoben.