<script type="text/javascript">
<!--
// short - circuit 예제
var a = 100;
var b = 200;

var c = 100;
var d = 200;

if((++a > 1000) && (++b > 1000)){
  alert("if 조건 만족");
}else{
  alert("if 조건 불만족");
}

if((++c < 1000) && (++d > 1000)){
  alert("if 조건 만족");
}else{
  alert("if 조건 불만족");
}

alert(a);
alert(b);
alert(c);
alert(d);

/*
a, b, c, d 각각의 값은?

답) 101, 200, 101, 201
해설)
처음의 if문에서 ++a 는 101이다. (++a > 1000) 은 false
&& 왼쪽의 표현식은 false이다.
(++b > 1000) 가 true이던 false 이던 전체의 표현식은 false가 된다.

** 이런경우 javascript에서는 오른쪽의 표현식을 평가하지 않는데 이것을 short-circuit 라고 한다.

두번째의 if문에서 ++c는 101이다. (++c < 1000) 은 true
&& 왼쪽의 표현식은 true이다.
전체 표현식이 true인지 false인지 판단하기 위해서는 && 오른쪽의 식도 평가되어야 하므로 ++d가 수행된다.

참고로 java에서도 short-circuit은 적용된다.(다른 언어는 되는지 안되는지 찾아보삼~~)
*/

// -->
</script>
Posted by 알 수 없는 사용자 :