0

これが私の最初のクラスです:

public class Fraction
{
    int Numerator;
    int Denominator;

    /**
     * Constructor for objects of class Fraction
     */
    public Fraction()
    {
        // initialise instance variables
        Numerator=0;
        Denominator=0;        
    }

    public Fraction(int StartNumerator , int StartDenominator)
    {
        StartNumerator = Numerator;
        StartDenominator = Denominator;      
    }

    public String toString()
    {
        String FractionOne = Numerator + "/" + Denominator;
        String FractionTwo = Numerator + "/" + Denominator;

        return FractionOne;
        return FractionTwo;
    }      
}

これが私の2番目のクラスです:

public class TestFraction
{
    public static void main (String [] args)
    {

        Fraction FractionOne = new Fraction(1 , 4);
        Fraction FractionTwo = new Fraction(2 , 3);

        System.out.println(FractionOne);
        System.out.println(FractionTwo);     
    }
}

コンパイルすると、次の場合にエラーが発生します。 return FractionTwo; 到達不能なステートメントとして

私が間違っていることを理解するのを手伝ってください。

4

3 に答える 3

3
return FractionOne;
return FractionTwo;

2 つの return ステートメントを続けて使用することはできません。最初のものはメソッドを終了するため、2番目のものは決して実行できません。そのため、2 番目のステートメントには到達できません。

両方の文字列を返したい場合は、おそらくそれらを連結する必要があります。

return FractionOne+FractionTwo;

また

return FractionOne+","+FractionTwo;

また

return FractionOne+"\n"+FractionTwo;

ただし、どちらも同一であるため、両方を返す意味がわかりません。

于 2014-11-25T18:25:57.000 に答える
0

他のみんなが言ったように、「戻る」と、それ以上のステートメントは処理できません。

また、このコンストラクターには問題があります。

  public Fraction(int StartNumerator , int StartDenominator)
    {
        StartNumerator = Numerator;
        StartDenominator = Denominator;

    }

最後に、デフォルト コンストラクターで分母を 0 に初期化しています。それはおそらく悪い考えです。

于 2014-11-25T18:36:15.610 に答える