자바 해 혹 의 판단 이 이렇게 어 려 운 가?
1689 단어 자바
이렇게?
public boolean isOdd(int i) {
return i % 2 == 1;
}
아니면 이렇게?
public boolean isOdd(int i) {
return i % 2 != 0;
}
유 감 스 럽 지만 첫 번 째 방식 은 4 분 의 1 이 틀 릴 수 있 습 니 다. 이것 은 자바 가 모델 링 기호 에 대한 정의 와 관련 이 있 습 니 다.
(a / b) * b + a %b = a;
상기 등식 의 성립 을 확보 하기 위해 a 가 마이너스 일 때 2 의 모델 링 은 마이너스 가 될 것 이다. 예 를 들 어:
(-3 / 2) + (-3 % 2) = -3
이때 의 - 3% 2 는 - 1 이 되 기 때문에 처음에 함수 가 잘못 되 었 습 니 다.
그리고 두 번 째 는 약간 비효 율 적 이 고 더 좋 은 방법 은:
public boolean isOdd(int i) {
return i & 1;
}
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
사실 자바 에서% 연산 을 사용 할 때 예상 치 못 한 결 과 를 초래 할 수 있 습 니 다.
3 % 2 = 1;
-3 % 2 = -1;
3 % -2 = 1;
-3 % -2 = -1;
이상 의 결과 경험 증 은 틀림 이 없다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.