2

我正在做官方 Java 教程的练习 1。到目前为止,我有这个程序:

public class Card {
    public final int rank;
    public final int suit;

    public Card(int rank, int suit){
        this.rank = rank;
        this.suit = suit;
    }

    public final static int Diamonds = 1;
    public final static int Clubs =2;
    public final static int Hearts = 3;
    public final static int Spades =4;

    public final static int Ace =1;
    public final static int Deu=2;
    public final static int Three =3;
    public final static int Four =4;
    public final static int Five = 5;
    public final static int Six = 6;
    public final static int Seven = 7;
    public final static int Eight =8;
    public final static int Nine = 9;
    public final static int Ten =10;
    public final static int Jack =11;
    public final static int Queen =12;
    public final static int King=13;

    public int returnSuit() {
        return suit;
        return rank;
    }
}

但是,Eclipse 不断给我该returnSuit方法中第二个字段的“无法访问的代码”错误。我用谷歌搜索了我的问题,但似乎找不到解决方案。

4

2 回答 2

7

Javareturn中的是当前方法的结束点。此时,该方法存在并返回指定的值。

它给你一个错误,因为你永远不会到达第二个return,因为方法已经完成了。

于 2013-02-20T22:31:25.937 回答
1

您不能一个接一个地拥有多个返回语句。当编译器看到返回语句时,它基本上会终止该方法并返回到前一个控件。如果你有两个一个接一个的返回,编译器肯定会确定第一个返回将通过终止方法返回值。你的第二个 return 语句永远不会回复,因此编译器抱怨unreachable code我猜你需要类似下面的东西:

public int returnSuit(){
    if(somecond is true)
        return suit;
    else
        return rank;
}
于 2013-02-20T22:30:54.497 回答