2013-02-25 1 views
4

내가 본 프로그램에서이 코드 스 니펫을 발견했습니다. 누군가가 여기에서 무슨 일이 일어나는지 설명 할 수 있습니까?Java에서 return methodA() || methodB()의 목적은 무엇입니까

return methodA() || methodB(); 

방법 A와 방법 B는 결국 부울을 반환한다. 이것은 어떤 종류의 예외 보호입니까? 아니면이 문은 항상 methodA()를 반환합니까?

답변

12

methodA을 호출하고 결과를 확인합니다. true이면 즉시 true를 반환합니다. 그렇지 않으면 methodB을 호출하고이를 반환합니다.

어쨌든 이것을 단락 연산자라고합니다. Java 운영자에 대해 좀 더 배우는 것이 좋습니다. 아마 이런 것들을 많이 볼 수 있기 때문입니다. 짧은 단락 동작이 요구되지 않은 경우

는, 그들은 모두 메소드 호출 (논리 또는 논리 값에 상당) 결과의 OR 연산을 수행하고를 반환하는

return methodA() | methodB(); 

을 사용할 수도 결과.

+0

감사합니다. 매우 유익한 답변이며이 중 하나는 놀라 울 정도로 Google에 어렵습니다. – SMC

3

즉, methodAtrue 인 경우 반환 값으로 사용하고 그렇지 않으면 methodB의 반환 값을 사용합니다. 계단식으로 평가 된 일종의 반환 값입니다.

0

은 다음의 양식을 단축 :

boolean a = methodA(); 
boolean b = methodB(); 

if(a) { 
    return true; 
} 
else if(b) { 
    return true; 
} 
else { 
    return false; 
} 

methodA()하면 true를 반환는 methodB()는 호출되지 않습니다 진정한가 반환됩니다. MethodA()이 false를 반환하면 methodB()이 호출되고 해당 값이 반환됩니다.

+3

이 코드와 OP의 코드 사이에 의미 상의 차이가 있습니다. 이 코드는 항상'methodB'를 호출합니다. – gustafc

+0

아래 예제 코드를 참조하십시오. 그것은 이미 언급되었습니다. 명확한 변수와 쉬운 가독성으로 설명하려고했습니다. –

관련 문제