2014-02-21 5 views
-3

저는이 작업을 올바르게 수행하고 있다고 생각하지만 올바르게 분수 클래스에서 ImproperFraction 메서드에 문제가 있습니다. 단순히 출력이 쇠퇴하거나 분수가 부적절하지 않고 특별한 것이 필요하지 않습니다. 메인 클래스에서Java에서 부적절한 분수 출력 문제가 있습니다.

public boolean ImproperFraction(Fraction otherObject1){ 

    if(numerator > denominator) { 

      System.out.println("Your fraction is improper and cannot be reduced"); 
      Fraction otherFraction = (Fraction)otherObject1; 
      return ((numerator == otherFraction.numerator) && 
      (denominator == otherFraction.denominator)); 
     } 

    else if(numerator <= denominator) { 
     System.out.println("Your fraction is proper and has been reduced"); 
     return false; 
     } 

    else { 
     return false; 
    }  
    } 

:

System.out.println(ImproperFraction); 

그것은 내가 그것을 넣어 비율이 부적절한 경우에도 false를 반환하고있는 것을 유일한 것은. 어떤 도움을 주셔서 감사합니다!

+2

분자와 분모는 어디에서 오는가? – panoptical

+0

왜 프란 션 번호를 다른 분수 번호와 비교하여 부적절한 분수인지 여부를 결정합니까? 테스트중인 분수의 분자와 분모를 비교해야합니다. – anonymous

+0

'Fraction' 클래스에있는 메소드입니까? 그렇다면 첫 번째 것이 부적절한 것인지 테스트하기 위해 두 번째 부분을 전달할 필요가 없습니다. 어쩌면 당신은'otherObject1'을 없애고'if' 블록 안에 메시지를 출력 한 후에'true'를 리턴해야합니다. –

답변

0

이제 코드 전체가 표시되었으므로 실제로 어디서나 ImproperFraction 메서드를 호출하지 않는 것으로 보입니다.

실제로 설정하지 않은 ImproperFraction이라는 정적 부울 변수가 있으므로 항상 거짓입니다. 그리고 라인 System.out.println(ImproperFraction)에서 그 변수를 인쇄하고 있습니다. 하지만 실제로는 ImproperFraction 메서드를 호출하지 않으므로 pastebin이 아닌 실제 질문에 게시 한 코드가 실행되지 않습니다.

0

귀하의 문제는 분자와 현재 Fraction합니다 (this 객체)의 분모는 당신이 전달 된 분수의 분자와 분모에 동일한 경우에만 true를 반환하고 있다는 것입니다. 즉, 첫 번째 블록은

말을해야
if (numerator >= denominator) { 
    System.out.println("This fraction is improper"); 
    return true; 
} 

분자와 분모를 otherObject1으로 비교하지 않아도됩니다.

사실, otherObject1은 전혀 전달하지 않아야합니다. 너는 필요 없어.