我正在做官方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
方法中的第二个字段提供“无法访问的代码”错误。我用谷歌搜索了我的问题,但我似乎无法找到解决方案。
答案 0 :(得分:7)
Java 中的return
是当前方法的终点。在这一点上,该方法存在并返回指定的值。
它给你一个错误,因为你永远不会到达第二个return
,因为该方法已经完成。
答案 1 :(得分:1)
你不能一个接一个地有多个return语句。当编译器看到return语句时,它基本上终止该方法并返回到前一个控件。如果你有两个接一个的返回,编译器肯定肯定第一个返回将通过终止方法返回值。你的第二个return语句永远不会被重新定义,因此编译器抱怨unreachable code
我想你需要类似下面的内容:
public int returnSuit(){
if(somecond is true)
return suit;
else
return rank;
}