else上的语法错误

时间:2012-11-05 08:15:22

标签: java

可能有一个简单的问题,但在哪里谷歌它似乎问题  在if语句的末尾是一个分号,问题是eclipse给我语法错误,要求在else if语句中删除我的else,这几乎一直发生在我身上,我最终使用了多个IF。

        if(saleStatus == false || offerPrice <= currentOffer)
        {
            System.out.print("Error, sale is not open");
            return false;
        }

        else if(currentOffer >= reservePrice)
        {
            saleStatus = false;
        }

4 个答案:

答案 0 :(得分:3)

如果您指定它将返回一些内容,那么您的函数可以使用的每个路径都必须返回一个值。

在这种情况下,您可能已将其指定为

access_modifier boolean function_name(params){
...             // ^return type 

}

因此,所有代码路径都必须返回一个布尔值。 在您的代码中,如果它采用else...路径,并退出而不返回任何内容,则不允许这样做。

  else if(currentOffer >= reservePrice)
        {
            saleStatus = false;
            //return something here (null if you don't care)
        }
//or return something here (which all code-paths hit)

如果你使用像 Eclipse 这样的IDE,它可以提前警告你这样的事情。

答案 1 :(得分:1)

return块中没有else声明。如果在方法中声明了返回类型,则如果代码进入else块,该方法将不知道返回什么。

将一个放入其中或放在(*)之后。

答案 2 :(得分:0)

在第一个if中,你返回一个值,所以指定“else”是没有意义的,因为该方法的其余部分没有被执行。

一些开发人员在代码质量函数中避免使用多个return语句。

答案 3 :(得分:0)

我将代码包装在一个类声明中,只有最少的附加声明,并在整个if-else结构之后返回,Eclipse没有显示任何错误。我建议编写一个类似的最小完整程序,确实显示问题并发布它。

对于第二次测试,你不需要“else if”而不是“if”,但它应该是无害的。

  public class Bad {
    boolean saleStatus;
    int offerPrice;
    int currentOffer;
    int reservePrice;

    public  boolean problem() {
      if(saleStatus == false || offerPrice <= currentOffer)
      {
          System.out.print("Error, sale is not open");
          return false;
      }

      else if(currentOffer >= reservePrice)
      {
          saleStatus = false;
      }
      return true;
    } 
  }