【问题标题】:Java Error unreachable statementJava Error unreachable 语句
【发布时间】:2016-01-15 06:06:42
【问题描述】:

我正在尝试创建一个具有基础对象的类。基础对象将用于创建一些对象,并根据力量和能量提升在另一个类别中“战斗”。

编译“错误,无法访问的语句”时出现此错误,它指向指向返回的第 27 行,有人可以帮我吗?

public class Superhero {

    private String superheroName;
    private int superheroStrength;
    public int powerUp;

    public Superhero (String superheroName, int superheroStrength, int powerUp){
    this.superheroName = superheroName;
    this.superheroStrength = superheroStrength;
    System.out.println("Superhero: " + superheroName);
    System.out.println("Strength: " + ( superheroStrength + powerUp));
    }

    public Superhero (String superheroName, int powerUp){
    this.superheroName = superheroName;
    superheroStrength = 10;
    System.out.println("Strength: " + ( superheroStrength+powerUp));
    }

    public int getStrength(){
        return superheroStrength += powerUp;
    }

    public void powerUp (int powerUp){
        this.powerUp += powerUp;
    }

    public Superhero  battle(Superhero1 opponent){
        if (this.getStrength()>opponent.getStrength());
        return this;
        return opponent;
    }
    public String toString(){
    return this.superheroName;
    }
}

【问题讨论】:

  • 删除此行末尾的;if (this.getStrength()>opponent.getStrength());
  • 或者,将上述; 替换为{} 并将return this; 放入块中。这将使它更具可读性,解决无法访问的问题,并使其更加明显,因为现在它甚至没有缩进。
  • 这就是为什么您应该始终对if 语句使用大括号的原因之一,即使它们只包含一个语句。
  • @JonK 即使你有大括号,也同样可能犯同样的错误。

标签: java object return unreachable-statement


【解决方案1】:

一个额外的; 造成了所有的混乱

if (this.getStrength()>opponent.getStrength()); <--

那个分号终止了那里的语句,并假设它是一个从那里开始的新块。

因此代码

public Superhero  battle(Superhero1 opponent){
    if (this.getStrength()>opponent.getStrength());
    return this;
    return opponent;
}

等于

public Superhero  battle(Superhero1 opponent){
    if (this.getStrength()>opponent.getStrength()){
    }
    return this;
    return opponent;
}

删除多余的;希望不是故意输入),这样代码就可以了。

正如有人已经评论过的那样,这就是原因,总是使用花括号来避免这种情况。

【讨论】:

    猜你喜欢
    • 2016-06-02
    • 2016-07-25
    • 2018-08-12
    • 1970-01-01
    • 2012-11-18
    • 1970-01-01
    • 1970-01-01
    • 2017-08-26
    • 1970-01-01
    相关资源
    最近更新 更多