Little cabin in the woods

논리 연산자의 단축 평가 (short circuit) 본문

STUDY/JAVA

논리 연산자의 단축 평가 (short circuit)

Y... 2024. 4. 2. 17:16

단축 평가는 표현식을 평가하는 도중에 결과가 확정되면, 뒤의 표현식은 생략하고 결과 값을 바로 반환하는 것을 말한다.

 

< 논리 연산자 >

&& , AND : a와 b가 모두 true일 때만 true 반환

|| , OR : a와 b 중 하나만 true면 true 반환

 

📍 &&가 || 보다 연산 우선순위가 높다.

 

< 단축 평가 >

&& : 앞의 것이 false 면 뒤의 것을 평가할 필요가 없음

|| : 앞의 것이 true면 뒤의 것을 평가할 필요가 없음

 

📍 평가는 곧 실행을 의미하므로 연산 부하가 적은 코드를 앞에 적어 리소스를 절약할 수 있다.

📍 ++ 나 -- 같이 값을 변화시키는 코드를 작성할 때 주의해야 한다.

 

int a = 1, b=2, c=0, d=0, e=0, f=0;

boolean bool1 = a < b && c++ < (d += 3); // c=1, d=3 으로 변화
boolean bool2 = a < b || e++ < (f += 3); // a<b가 true이므로 뒤의 평가문은 실행되지 않음.
						// 그러므로 e=0, f=0 으로 유지됨.

boolean bool3 = a > b && c++ < (d += 3); // a>b가 false이므로 뒤의 평가문은 실행되지 않음.
						// 그러므로 c=1, d=3 으로 유지됨.
boolean bool4 = a > b || e++ < (f += 3); // e=1, f=3으로 변화