달력

12

« 2018/12 »

  •  
  •  
  •  
  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
  •  
  •  

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

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


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

① 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 라는 값을 가지게 된다.

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

Posted by 유쾌한순례자