为什么我不能在return语句中指定两个字段

时间:2013-02-20 22:29:10

标签: java

我正在做官方Java教程的exercise 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方法中的第二个字段提供“无法访问的代码”错误。我用谷歌搜索了我的问题,但我似乎无法找到解决方案。

2 个答案:

答案 0 :(得分:7)

Java 中的return是当前方法的终点。在这一点上,该方法存在并返回指定的值。

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

答案 1 :(得分:1)

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

public int returnSuit(){
    if(somecond is true)
        return suit;
    else
        return rank;
}