bool 값 연산시

vani2의 이미지

예를 들어 다음과 같은 코드가 있는데요

bool a = true;

(a || false) or (a || false) ? true : false;

위의 bool 판별하는 상황에선 왼쪽이 더 나을까요?

mirheekl의 이미지

그냥 a를 바로 사용하면 안되는지요?

--

vani2의 이미지

아 저건 그저 떠오르는 예시가 없어서 저렇게 쓴 것 입니다.

제가 말하고자 하는 것은 둘 다 변수이고 나중에 런타임때 값이 계산될 경우에 삼항연산자와 그것마저 사용하지 않는 2가지 경우를 보았는데 각각의 상황이 궁금합니다.

mirheekl의 이미지

온라인 어셈블러로 넣어보니 둘 다 똑같이 나옵니다. 즉, bool function(bool a, bool b) 일때,

return a || b 이거랑 return (a || b) ? true:false 는 똑같다는 얘기. (아 물론 최적화를 끄면 달라지겠지만 그럴 일은 없겠죠.) 따라서 후자는 쓸 이유가 없는것 같네요.

다만 기본 자료형 bool이 아닌 다른 자료형이라면 출력을 가공하기 위해 사용할 수도 있습니다. 후자를 사용한 코드 예제를 올려주시면 좋을 것 같네요.

--

vani2의 이미지

그렇군요.

어떤 책에서 초보자를 위해 전자 처럼 썼다고 나와있길래

"그럼 후자는 전문가용인가?"하는 의문에서 질문하게 되었습니다.

결국은 생각대로 아무런 영향이 없군요.

답변 감사합니다.