본문 바로가기

잡다한 개발잡담

JAVA - 숏서킷 연산

short curcit?? 자바 공부하다가 이런게 있었나 싶어서 포스팅합니다.

숏서킷 연산은 논리연산자에서 알아볼 수 있습니다.

코딩을 하다보면 if( a || b) , if( a && b) 와 같은 논리연산자를 사용하게 됩니다.

먼저 a || b 부터 보겠습니다. or 연산으로 a 또는 b가 트루라면 조건문을 실행하게 됩니다.

즉 그렇다는 것은 a와 b 둘 중 하나만 true여도 된다는 것이고 

a만 true라면 이미 조건문을 실행할 수 있게 되는 조건이 충족된 것이죠. 그렇기 때문에 자바에서는 숏서킷연산에 의해서 true || b라면 b의 연산을 실행하지 않습니다.

그렇다면 &&은? a와 b 모두가 true여야 합니다. 그렇다면 false && b라면? b가 true, false 무엇이든 이미 조건을 만족하지 못합니다. 즉 b의 연산을 실행하지 않습니다.

즉 숏서킷연산이란 것은 뒤에 연산을 수행하지 않아도 이미 조건을 만족했기 때문에, 연산을 생략하는 것이라고 이해하시면 편합니다.

이것을 왜 알아야 하냐면 만약 연산을 실행하지 않는 조건에서 값의 변화가 일어나는 연산일 경우에는 원하는 값에 오류가 생길 수도 있기 때문입니다!