2014-11-25 1 views
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; 
    }  
} 

Вот мой второй класс:

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

Когда я компилирую, я получаю сообщение об ошибке при: возвращение FractionTwo; как недостижимое заявление

Пожалуйста, помогите мне понять, что я делаю неправильно.

+1

Вы должны рассмотреть использование соглашений lowerCamelCase для имен переменных. Это уменьшит путаницу для других программистов, которым, возможно, придется смотреть на ваш код. –

ответ

3
return FractionOne; 
return FractionTwo; 

У вас не может быть двух операторов возврата один за другим. Второй никогда не может быть выполнен, так как первый из них выйдет из метода. Вот почему второе утверждение недостижимо.

Если то, что вы хотите, чтобы вернуть обе строки, вы, вероятно, следует сцепить их:

return FractionOne+FractionTwo; 

или

return FractionOne+","+FractionTwo; 

или

return FractionOne+"\n"+FractionTwo; 

Однако, поскольку оба они являются Точно так же я не вижу смысла возвращать оба.

+0

Спасибо вам большое !!!! Что имеет смысл –

+0

Wait Как они оба идентичны, у них разные значения? –

+1

@Brendanten Вы назначаете «Numerator +»/«+ Знаменатор» для обоих из них. – Eran

0

Проблема в том, что у вас может быть только один возврат.

Если вам нужно отправить 2 значения посмотреть на Java Collections API

Вы могли бы сделать что-то вроде:

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

Пожалуйста, добавьте переопределение функции переопределить ToString functinoality

0

Как и все остальные сказал, как только вы «вернетесь», дальнейшие заявления не могут быть обработаны.

Кроме того, вы будете иметь проблемы с этим конструктором:

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

    } 

Наконец, вы инициализации знаменатель 0 в конструктор по умолчанию. Это, наверное, плохая идея.

 Смежные вопросы

  • Нет связанных вопросов^_^