2016-05-22 12 views
-4

Meine Aufgabe ist es, mehrere Methoden für das Programm zu erstellen. Ich halte mich am meisten auf diesen beiden fest.IF-Else Java Zuordnung

Spezifikationen sind wie folgt: Need wenn n else-Anweisung Namen zu verwenden: setZipCode Argumente: 1 int Rückgabe: boolean

, was sie tut: das Argument als Adresse Postleitzahl speichert. Wenn die Postleitzahl keine Zahl zwischen 90000 und 92000 (einschließlich) ist (die Reihe der Postleitzahlen von Los Angeles), geben Sie false zurück, andernfalls geben Sie true zurück.

Name: getZipCode Argumente: keine zurück: int , was sie tut: gibt den Wert der Adresse Postleitzahl

Mein Code so weit:

public int setZipCode(int zipCode){ //argument has to be type int zipCode and this method has to return a boolean 
    if(zipCode >90000 && zipCode <92000){ //zipCode is between 90000 and 92000 
     return true; 
    }else{ 
     return false; 
    } 
    public int getZipCode(){//no argument 
     return zipCode; //returns type int and return the value of the address zipcode 
    } 
} 

Wenn ich diesen Code ausführen es gibt fehlerhafte Operandentypen für den binären Operator. Inkompatible Typen: unerwarteter Rückgabewert.

Ich deklariere int zipCode; früh und ich verstehe nicht, wie man boolean und int zusammen arbeitet.

Wenn mir jemand helfen kann, was ich falsch mache, wäre es sehr dankbar und danke.

Ich habe die Änderungen basierend auf dem Rat von mir gegeben, es kompiliert jetzt, aber aus irgendeinem Grund zeigt es immer noch an der Eingabeaufforderung, dass getZipCode und setZipCode fehlgeschlagen! tatsächlichen Zip: 0 erwartet Reißverschluss: 2

public int getZipCode(){ 
     return zipCode; 
    } 
    public boolean setZipCode(int zipCode) { 
     if(zipCode >90000 && zipCode <92000){ 
     this.zipCode = zipCode; 
     return true; 
     } 
     else{ 
     return false; 
     } 

    } 
} 
+1

'public boolean setZipCode (int zipCode)' – Tibrogargan

+0

Für eine Funktion namens 'setZipCode' es eigentlich nicht, wissen Sie, * Set * nichts. Zählen Sie auch Ihre geschweiften Klammern '{}' und überlegen Sie, wo 'getZipCode' definiert ist. –

Antwort

2

Wie Sie schrieb, setZipCode sollte eine boolean zurückgeben, und sollte wahrscheinlich die Postleitzahl gesetzt, wie der Name schon sagt:

public boolean setZipCode(int zipCode) { 
    if(zipCode >90000 && zipCode <92000){ 
     this.zipCode = zipCode; 
     return true; 
    }else{ 
     return false; 
    } 
} 

Abgesehen davon,

public int getZipCode() { 
    return zipCode; 
} 
0

Ihr Code hat setZipCode: Sie sollten Ihre getZipCode() Methode außerhalb des Körpers von setZipCode() bewegen als int deklariert, aber du gibst boolesche Werte zurück (wahr oder falsch). Deklarieren Sie setZipCode als booleschen Wert.

0

Ich denke, dass Ihr Problem auf dem Zeichen Ihrer Methode ist:

public int setZipCode(int zipCode){...} 

Sie sagen, dass Ihre Methode einen int zurück, sondern auf Code, den Sie versuchen, einen Booleschen Wert (true/false zurück).

um dieses Problem zu beheben Sie Ihre Methode als aktualisieren sollten:

public boolean setZipCode(int zipCode) { 
if(zipCode >90000 && zipCode <92000){ //zipCode is between 90000 and 92000 
    return true; 
}else{ 
    return false; 
} 
} 

Auch ich denke, dass Sie eine geschweifte Klammer zwischen dem setZipCode Verfahren und getZipCode Methode verpasst.

0

setZipCode Rückgabetyp der Methode sollte boolean sein, wie Sie boolean Wert zurückzukehren versuchen.Hier ist eine Zeile Code-Schnipsel, die Sie tun sollten:

public boolean setZipCode(int zipCode){ 
    return zipCode > 90000 && zipCode < 92000; 
} 
1

Dies ist eine mögliche Lösung

public class Address { 
    private int zipCode; 
    public boolean setZipCode(int zipCode){ 
     this.zipCode = zipCode; 
     return zipCode > 90000 && zipCode < 92000; 
    } 
} 

Bitte beachten, dass jedoch setZipCode hat zwei Aufgaben:

  • die Einstellung Postleitzahl
  • Überprüfung der Postleitzahl

Also wahrscheinlich sollten Sie sie teilen. Darüber hinaus seien Sie vorsichtig boolean Fehlercodes (see here)