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;
    }
}

returnSuitただし、Eclipse は、メソッドの 2 番目のフィールドに対して「到達不能コード」エラーを表示し続けます。問題をグーグル検索しましたが、解決策が見つからないようです。

4

2 に答える 2

7

returnin Javaは、現在のメソッドの終点です。その時点で、メソッドが存在し、指定された値を返します。

returnメソッドはすでに終了しているため、2番目に到達することはないため、エラーが発生します。

于 2013-02-20T22:31:25.937 に答える
1

複数のreturnステートメントを次々に持つことはできません。コンパイラがのreturnステートメントを参照すると、基本的にそのメソッドを終了し、前のコントロールに戻ります。次々に2つの戻り値がある場合、コンパイラーは、最初の戻り値がメソッドを終了することによって値を返すことを最も確実に確信しています。2番目のreturnステートメントが返されることはないので、コンパイラーはunreachable code次のようなものが必要だと文句を言います。

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