这是我的头等舱:
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; 作为无法达成的陈述
请帮助我理解我做错了什么。
答案 0 :(得分:3)
return FractionOne;
return FractionTwo;
你不能一个接一个地有两个return语句。第二个永远不会被执行,因为第一个将退出该方法。这就是第二个陈述无法达成的原因。
如果你想要的是返回两个字符串,你应该连接它们:
return FractionOne+FractionTwo;
或
return FractionOne+","+FractionTwo;
或
return FractionOne+"\n"+FractionTwo;
然而,由于两者都是相同的,所以我没有看到返回两者的重点。
答案 1 :(得分:0)
问题是你只能有一次回归。
如果您需要发送2个值,请查看Java Collections API
您可以执行以下操作:
@Override
public String toString()
{
String FractionOne = Numerator + "/" + Denominator;
String FractionTwo = Numerator + "/" + Denominator;
return FractionOne + " "+ FractionTwo;
}
请为该功能添加覆盖以覆盖toString functinoality
答案 2 :(得分:0)
就像其他人所说的那样,一旦你“回归”,就不能再处理其他陈述了。
此外,您将遇到此构造函数的问题:
public Fraction(int StartNumerator , int StartDenominator)
{
StartNumerator = Numerator;
StartDenominator = Denominator;
}
最后,您在默认构造函数中将分母初始化为0。这可能是一个坏主意。