Study/Java

논리연산자 와 연산자 우선순위에 대한 정말 좋은 예제 = 솔데스크 최용석 강사님 =

유쾌한순례자 2011. 7. 6. 17:59

기존에 논리연산자의 경우 앞 조건으로만도 판단 할 수 있다는 것은 알고 있었지만

오늘 솔데스크 최용석 강사님의 아주 좋은 예제를 바탕으로 쉽게 이해 할 수 있는 예제를 보았다.


이 소스는 솔데스크 자바반 최용석 강사님께서 작성하신 코드입니다.

① int i=1;
② int j=i++;
③ if((i>++j)&&(i++==j)){
④        i+=j;
 }

i 와  j의 값은 ?.
② 에서 = 연산자는 후위식 ++ 보다 우선순위기 때문에 j 에 먼저 i 값이 들어가 j=1 이되고 i=2 가 된다
③ 에서 i>++j 에서 j=2 가 되고 2>2 라는 조건은 거짓이기 때문에 false가 된다.

여기서 논리연산자 ( && , || ) 의 경우 해당 앞조건만으로도 참 , 거짓이 판단이 가능한 경우
뒷조건을 실행하지 않는다.

즉 i++=j 라는 식은 실행하지 않기 때문에 그대로 i=2 , j=2 라는 값을 가지게 된다.

※여기서 비트논리연산자(&,|) 를 사용하면 뒤의 식도 계산을 한다.