IF-Else Java Assignment

时间:2016-05-22 06:20:21

标签: java

我的任务是为程序创建几种方法。我似乎最困在这两个。

规格如下:如果n,则需要使用声明 name:setZipCode 参数:1 int 返回:布尔值

它的作用:将其参数存储为地址'邮政编码。如果 邮政编码不是90000到92000之间的数字(含) 洛杉矶的范围'邮政编码)返回false,否则返回true。

name:getZipCode 参数:无 返回:int 它的作用:返回地址的值'邮政编码

到目前为止我的代码:

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
   }
}

当我运行此代码时,它会为二元运算符提供错误的错误操作数类型。 不兼容的类型:意外的返回值。

我声明了int zipCode;在早期,我不明白如何让boolean和int一起工作。

如果有人能给我提供帮助,关于我做错了什么,我们将不胜感激,谢谢。

我根据你们给我的建议进行了更改,它现在编译,但由于某种原因它仍然在命令提示符下显示getZipCode和setZipCode失败! 实际拉链:0 预期的邮编:2

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

    }
}

5 个答案:

答案 0 :(得分:2)

正如您所写,setZipCode应该返回一个布尔值,并且应该设置邮政编码,顾名思义:

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

除此之外,您应该将getZipCode()方法移到setZipCode()的正文之外:

public int getZipCode() {
    return zipCode;
}

答案 1 :(得分:1)

这是一种可能的解决方案

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

但请注意,setZipCode有两项工作:

  • 设置邮政编码
  • 检查邮政编码

所以你应该分开它们。此外,请谨慎使用boolean错误代码(see here

答案 2 :(得分:0)

您的代码将setZipCode声明为int,但您返回布尔值(true或false)。将setZipCode声明为布尔值。

答案 3 :(得分:0)

我认为您的问题取决于您的方法:

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

你说你的方法会返回一个int,但是在代码中你试图返回一个布尔值(true / false)。

要解决此问题,您应该将方法更新为:

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

另外我认为你错过了setZipCode方法和getZipCode方法之间的大括号。

答案 4 :(得分:0)

setZipCode 方法的返回类型应为 boolean ,因为您正在尝试返回布尔值。这是一行代码片段,您应该做:

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