내가 본 프로그램에서이 코드 스 니펫을 발견했습니다. 누군가가 여기에서 무슨 일이 일어나는지 설명 할 수 있습니까?Java에서 return methodA() || methodB()의 목적은 무엇입니까
return methodA() || methodB();
방법 A와 방법 B는 결국 부울을 반환한다. 이것은 어떤 종류의 예외 보호입니까? 아니면이 문은 항상 methodA()를 반환합니까?
내가 본 프로그램에서이 코드 스 니펫을 발견했습니다. 누군가가 여기에서 무슨 일이 일어나는지 설명 할 수 있습니까?Java에서 return methodA() || methodB()의 목적은 무엇입니까
return methodA() || methodB();
방법 A와 방법 B는 결국 부울을 반환한다. 이것은 어떤 종류의 예외 보호입니까? 아니면이 문은 항상 methodA()를 반환합니까?
methodA
을 호출하고 결과를 확인합니다. true이면 즉시 true를 반환합니다. 그렇지 않으면 methodB
을 호출하고이를 반환합니다.
어쨌든 이것을 단락 연산자라고합니다. Java 운영자에 대해 좀 더 배우는 것이 좋습니다. 아마 이런 것들을 많이 볼 수 있기 때문입니다. 짧은 단락 동작이 요구되지 않은 경우
는, 그들은 모두 메소드 호출 (논리 또는 논리 값에 상당) 결과의 OR 연산을 수행하고를 반환하는
return methodA() | methodB();
을 사용할 수도 결과.
즉, methodA
이 true
인 경우 반환 값으로 사용하고 그렇지 않으면 methodB
의 반환 값을 사용합니다. 계단식으로 평가 된 일종의 반환 값입니다.
은 다음의 양식을 단축 :
boolean a = methodA();
boolean b = methodB();
if(a) {
return true;
}
else if(b) {
return true;
}
else {
return false;
}
methodA()
하면 true를 반환는 methodB()는 호출되지 않습니다 진정한가 반환됩니다. MethodA()
이 false를 반환하면 methodB()
이 호출되고 해당 값이 반환됩니다.
이 코드와 OP의 코드 사이에 의미 상의 차이가 있습니다. 이 코드는 항상'methodB'를 호출합니다. – gustafc
아래 예제 코드를 참조하십시오. 그것은 이미 언급되었습니다. 명확한 변수와 쉬운 가독성으로 설명하려고했습니다. –
감사합니다. 매우 유익한 답변이며이 중 하나는 놀라 울 정도로 Google에 어렵습니다. – SMC