blogger
blogger - 논리 연산자
논리 연산자는 Boolean 값을 비교하는 데 사용됩니다. 반환 값이 true 나 false 에 따라 참, 거짓 여부가 결정되며 반환 값이 Boolean 형이 아닌 데이터는 파싱 오류가 발생합니다.
하지만 && 로 그대로 조건식을 사용할 경우 블로거 편집기에서 구문 분석 오류가 발생하므로 && 인 엔티티로 변경해줘야 합니다. 예를 들면 다음과 같이 변경해서 사용하세요.
and 연산자는 주어진 조건이 모두 참일 때만 표시하지만 or 연산자는 주어진 조건식 중 어느 하나라도 true 이면 표시하라는 뜻입니다. 그러므로 다음 결과는 현재 페이지가 라벨 검색이거나 모바일 접속이면 “안녕 하보니” 문구를 출력합니다.
not 또는 ! 연산자는 false 일 때 출력하는 조건식입니다. 그러므로 다음 코드는 모바일이 아니라면 표시하는 코드가 됩니다.
not 조건식은 ! 와 같은 조건식이지만 위 코드에서는 사용할 수 없습니다. “not in” 이나 “not contains” 과 같은 Membership 연산자에 사용할 수 있습니다.
다음은 중첩된 조건식입니다.
이 경우 라벨이 foo 이거나 게시물 목록일 때는 표시되지만 메인 페이지에는 표시하지 않습니다.
예 제 | 결 과 |
---|---|
a && b | a와 b 모두 true 일 때 |
a and b | |
a || b | a나 b 중 하나가 true 일 때 |
a or b | |
!a | a가 false 일 때 |
not |
&& 나 and 는 주어진 두 값 모두가 true 이면 결과를 표시합니다. 피연산자 중 하나라도 false 이면 결과도 false 가 되므로 표시하지 않습니다. 아래 코드에서 모바일 접속상태이고 현재 페이지가 라벨 검색이면 두 조건 모두가 true 가 되므로 “안녕 하보니” 문구를 표시합니다.
<b:if cond='data:blog.isMobileRequest and data:view.isLabelSearch'>
<h1>안녕 하보니!</h1>
</b:if>
하지만 && 로 그대로 조건식을 사용할 경우 블로거 편집기에서 구문 분석 오류가 발생하므로 && 인 엔티티로 변경해줘야 합니다. 예를 들면 다음과 같이 변경해서 사용하세요.
<b:if cond='data:blog.isMobileRequest && data:view.isLabelSearch'>
<h1>안녕 하보니!</h1>
</b:if>
and 연산자는 주어진 조건이 모두 참일 때만 표시하지만 or 연산자는 주어진 조건식 중 어느 하나라도 true 이면 표시하라는 뜻입니다. 그러므로 다음 결과는 현재 페이지가 라벨 검색이거나 모바일 접속이면 “안녕 하보니” 문구를 출력합니다.
<b:if cond='data:blog.isMobileRequest or data:view.isLabelSearch'>
<h1>안녕 하보니!</h1>
</b:if>
not 또는 ! 연산자는 false 일 때 출력하는 조건식입니다. 그러므로 다음 코드는 모바일이 아니라면 표시하는 코드가 됩니다.
<b:if cond='!data:blog.isMobileRequest'>
<h1>안녕 하보니!</h1>
</b:if>
not 조건식은 ! 와 같은 조건식이지만 위 코드에서는 사용할 수 없습니다. “not in” 이나 “not contains” 과 같은 Membership 연산자에 사용할 수 있습니다.
<!-- 조건식이 true 일 때 -->
<b:if cond='data:view.search.label in {"foo", "bar", "baz"}'>
<h1>안녕 하보니!</h1>
</b:if>
<!-- 조건식이 false 일 때 -->
<b:if cond='data:view.search.label not in {"foo", "bar", "baz"}'>
<h1>안녕 하보니!</h1>
</b:if>
in 은 라벨이 true 일 때 표시하고, not in 이면 피연산자의 값이 반대일 때 표시합니다. 다시 말해 true 가 false 가 되고, false 가 true 가 됩니다. 그러므로 두 번째 조건식은 라벨이 "foo", "bar", "baz" 에 해당하지 않을 때 표시하라는 뜻이 됩니다.
논리 연산자를 이용해 좀 더 복잡한 조건식을 보도록 하죠. 아래 코드는 페이지 종류가 게시물 보기(포스트글)이거나 게시물 목록일 때 표시하는 예제입니다.
<b:if cond='data:blog.pageType == "item" or data:blog.pageType == "index"'>
<h1>안녕 하보니!</h1>
</b:if>
다음은 중첩된 조건식입니다.
<b:if cond='data:blog.searchLabel == "foo"
or (data:blog.pageType == "index" and data:blog.url != data:blog.homepageUrl)'>
<h1>안녕 하보니!</h1>
</b:if>
이 경우 라벨이 foo 이거나 게시물 목록일 때는 표시되지만 메인 페이지에는 표시하지 않습니다.
0 댓글