논리 연산자는 불리언(boolean) 값을 비교하는 데 사용됩니다.
논리 연산자
예 | 설명 |
---|---|
a && b | a와 b 모두 true 일 때 |
a and b | |
a || b | a나 b 중 하나가 true 일 때 |
a or b | |
!a | a가 false 일 때 |
not |
예제 1
다음은 and 연산자를 사용한 예제입니다.
<b:if cond='data:blog.isMobileRequest and data:view.isLabelSearch'>
<h1>hello</h1>
</b:if>
모바일 접속상태이고 현재 페이지가 라벨(label) 검색이면 'hello' 문구를 표시합니다. 만약 and 대신 &&를 사용할 경우 블로거 에디터에서 구문 분석 오류가 발생합니다. 따라서 아래와 같이 &&로 변경하여 작성해야 합니다.
<b:if cond='data:blog.isMobileRequest && data:view.isLabelSearch'>
<h1>hello</h1>
</b:if>
예제 2
and 연산자는 주어진 조건이 모두 참일 때만 표시하지만 or 연산자는 주어진 조건식 중 어느 하나라도 true이면 표시합니다. 그러므로 다음 결과는 현재 페이지가 라벨 검색이거나 모바일 접속이면 'hello' 문구를 출력합니다.
<b:if cond='data:blog.isMobileRequest or data:view.isLabelSearch'>
<h1>hello</h1>
</b:if>
예제 3
not 또는 ! 연산자는 false일 때 출력하는 조건식입니다. 아래 코드는 모바일이 아니라면 'hello'을 표시합니다.
<b:if cond='!data:blog.isMobileRequest'>
<h1>hello</h1>
</b:if>
예제 4
in 은 라벨(label)이 true 일 때 표시하고, not in 이면 피연산자의 값이 반대일 때 표시합니다.
<!-- 조건식이 true 일 때 -->
<b:if cond='data:view.search.label in {"naver", "tistory", "blogger"}'>
<h1>hello</h1>
</b:if>
<!-- 조건식이 false 일 때 -->
<b:if cond='data:view.search.label not in {"naver", "tistory", "blogger"}'>
<h1>hello</h1>
</b:if>
첫 번째 조건식은 라벨이 "naver", "tistory", "blogger" 해당한다면 결과로 표시되고, 두 번째 조건식은 라벨이 "naver", "tistory", "blogger" 에 해당하지 않는다면 결과로 표시하라는 뜻이 됩니다.
in은 Membership 연산자 입니다.
실전 예제 1
아래 코드는 페이지 종류가 게시물 보기이거나 게시물 목록(인덱스 페이지)일 때 결과를 표시하는 예제입니다.
<b:if cond='data:blog.pageType == "item" or data:blog.pageType == "index"'>
<h1>hello</h1>
</b:if>
실전 예제 2
다음 예제는 라벨(label)이 'blogger'이거나 게시물 목록(인덱스 페이지)일 때는 결과가 표시되지만 메인 페이지에는 결과를 표시하지 않습니다.
<b:if cond='data:blog.searchLabel == "blogger"
or (data:blog.pageType == "index" and data:blog.url != data:blog.homepageUrl)'>
<h1>hello</h1>
</b:if>