簡體   English   中英

無法獲得“返回”聲明

[英]Unreachable Statement On “Return”

這是我的頭等艙:

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

這是我的第二堂課:

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; 作為無法到達的陳述

請幫助我了解我在做什么錯。

return FractionOne;
return FractionTwo;

您不能一個接一個地返回兩個return語句。 第二個將永遠無法執行,因為第一個將退出該方法。 這就是第二條語句無法到達的原因。

如果要返回兩個字符串,則可能應該將它們連接起來:

return FractionOne+FractionTwo;

要么

return FractionOne+","+FractionTwo;

要么

return FractionOne+"\n"+FractionTwo;

但是,由於它們都是相同的,所以我看不到返回兩者的意義。

問題是您只能獲得一次退貨。

如果您需要發送2個值,請查看Java Collections API

您可以執行以下操作:

@Override
public String toString()
 {
    String FractionOne = Numerator + "/" + Denominator;
    String FractionTwo = Numerator + "/" + Denominator;
    return FractionOne + " "+ FractionTwo;
}

請在函數中添加重寫以重寫toString的功能

就像其他所有人所說的那樣,一旦您“返回”,就無法再處理任何語句。

另外,您將在此構造函數上遇到問題:

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

    }

最后,在默認構造函數中將分母初始化為0。 那可能是個壞主意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM