2013-06-10 3 views
-3

나는 자바에 대해 아주 익숙하다. 이 코드 라인을 이해하는 데 문제가 있습니다. 누군가 기본 방식으로 나를 위해 그것을 무너 뜨릴 수 있을까요?Java 모듈을 이해 하시겠습니까?

코드 : "나머지"연산자와 나머지 연산자의

private boolean isEven(int even) { 
    return even % 2 == 0; 
} 

private boolean canMove(int roll) { 
    int avenues = isEven(this.getStreet()) ? this.getAvenue() : 4 - this 
      .getAvenue(); 
    return this.getStreet() * 5 + avenues + roll < 25; 
} 
+1

는 나머지 연산자 또는'canMove' 코드에 문제가 있습니까? – djechlin

+0

당신이 이해하지 못하는 것은 무엇입니까? 이해하기 위해 무엇을 시도 했습니까? 그러한 종류의 질문은, 특히 일의 표시가 없으면, 대개 SO에 환영받지 못합니다. – Dariusz

답변

2

생각해 (자바 여기 %). 첫 번째 숫자를 두 번째 숫자로 나눌 때 나머지를 산출합니다.

2로 나눌 때 나머지가 0이면 그 수는 (true이 반환됩니다.) 그렇지 않으면 홀수입니다 (false이 반환됩니다).

그런 다음이 방법의 결과를 사용하여 avenues 변수에 this.getAvenue() 또는 4 - this.getAvenue()을 선택합니다.

다음 도로는 25과 비교되는 다른 합계를 계산하는 데 사용됩니다. 합이 25보다 작 으면 true이 리턴됩니다. else false이 리턴됩니다.

+0

마지막 줄은 어떨까요? return this.getStreet() * 5 + 길들이기 <25; "? – user2472469

1

ISEVEN :

2로 나눈 값 even 더 나머지가없는 경우, true를 반환; 그렇지 않은 경우는 false를 리턴합니다.

canMove :

현재의 거리 (this.getStreet()) ISEVEN는, 현재 번가 (this.getAvenue())를 사용하는 경우; 그렇지 않으면 4를 사용하십시오 - 현재 애비뉴. 이 결과는 avenues에 저장됩니다.

현재 거리 시간이 5 + avenues + 롤 값이 25보다 작 으면 true를 반환하고 그렇지 않으면 false를 반환합니다. 그렇지 않으면 거짓을 반환합니다.

재 작성,이 수 :

private boolean canMove(int roll) { 
    // create the avenues variable and initialize it with a value 
    int avenues = 0; 

    // if this.getStreet() is even, then avenues = this.getAvenue() 
    if (isEven(this.getStreet()) { 
     avenues = this.getAvenue(); 

    // otherwise, avenues = 4 - this.getAvenue() 
    } else { 
     avenues = 4 - this.getAvenue(); 
    } 

    // if this.getStreet() * 5 + avenues + roll is less than 25, then return true 
    if (this.getStreet() * 5 + avenues + roll < 25) { 
     return true; 
    } 

    // otherwise, return false 
    return false; 
} 
+0

그리고 4-do는 복용량에 따라 현재의 4 분 거리에 불과합니다. – user2472469

+0

@ user2472469 '현재의 거리에서 4 마이너스'입니다. 현재의 애비뉴가 '1'이라면, 동등한 문장은 '4-1'이 될 것이며, 분명히 '3'이됩니다. – GamerJosh