繁体   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