2014-05-09 2 views
0

에 해당하는 경우 if (true || false)과 같은 성명을 가진 경우, 그것이 사실 끝날 자바 (이클립스)에서 두 번째 문을 무시하지만 첫 번째에 해당하는 경우 문제는 컴파일러는 두 번째 문을 평가하는 것입니까? 이것은 변수가 null이거나 특정 값이있는 경우 수행해야하는 작업이 있기 때문에 중요합니다. 내 진술은 if (array == null || array[i] < array[j])입니다. array가 null로 설정된 경우 두 번째 명령문이 오류를 생성하므로 내 질문의 이유를 볼 수 있습니다. 그렇다면 array == null에서 충분하거나 컴파일러에서 array[i] < array[j])을 평가할 예정입니까?논리적 않거나 첫 번째는

답변

7

아니요. 부울 연산자 || 함께

  • 먼저 용어 true 재선 경우는 평가하지 않는다. 함께
  • 제 용어 false초 용어 비트 연산자
  • 를 평가하지 않을 경우 두 용어가 불리언 연산자 &&으로

마찬가지로 ...

  • 을 평가 연산자 | 비트 &, 두 용어가 모두 평가됩니다.

개의 Java 운영자 문서 here.

+0

감사합니다! 필자는 표현에서 테스트를 해봤지만 디버깅 할 수있는 지점에 도달 할 수 있었고 모든 작업을 끝내고 수정하는 것이 수치 스럽습니다. –

+0

@SharonJDDor 오신 것을 환영합니다. – Mena

+0

@SharonJDDorot - Groovy Console (http://groovyconsole.appspot.com/)을 살펴보십시오.이 작은 스 니펫을 넣을 때 유용합니다. –