PHP, JAVA, javascript, C 언어 등 대부분의 언어가 그렇듯 구글 블로거도 조건식을 이용할 수 있습니다.

if 문은 블로거에서 가장 많이 이용되는 제어문입니다. if 문은 <b:if> ... <b:elseif/> ... <b:else/> ... </b:if> 와 같은 방법으로 제어할 수 있습니다.

<b:if cond='조건식 1'>
  <!-- 조건이 참이면 실행 -->
<b:elseif cond='조건식 2'/>
  <!-- 첫 번째 조건이 거짓이면 실행 -->
<b:else/>
  <!-- 모든 조건이 거짓이면 실행 -->
</b:if>

이 태그에는 하나의 속성만 있으며 cond 에는 반환 값이 Boolean 으로 지정됩니다. 예를 들어 다음 형식으로 사용될 수 있습니다.

<b:if cond='data:view.isHomepage'>
  <!-- 메인 페이지이면 실행 -->
</b:if>

아래는 모바일로 접속한 사용자이면 실행하라는 뜻입니다. 두 조건은 모두 동일하니 참고하면 제작에 도움이 됩니다. 반환 값에 따옴표로 감싸주도록 하세요.

<b:if cond='data:blog.isMobile == "true"'>
  <!-- 모바일로 접속하면 실행 -->
</b:if>

<b:if cond='data:blog.isMobile'>
  <!-- 모바일로 접속하면 실행 -->
</b:if>

당연히 중첩도 가능합니다.

<b:if cond='data:blog.isHomepage'>
  <b:if cond='data:blog.isMobile'>
    <!-- 메인 페이지이고, 모바일로 접속하면 실행 -->
  </b:if>
</b:if>

약간의 프로그램 지식이 있다면 다음 논리 연산자는 이해되리라 생각됩니다. 모바일 접속이 아니지만 메인 페이지이면 실행하라는 뜻이 됩니다. !는 (Not)으로 == 는 (and)와 같습니다.

<b:if cond='!data:view.isMobile and data:view.isHomepage'>
  <!-- 조건이 참이면 실행 -->
</b:if>

<b:if cond='data:view.isMobile != and data:view.isHomepage == “true“'>
  <!-- 조건이 참이면 실행 -->
</b:if>

조건식에 사용된 따옴표는 작은따옴표와 큰 따옴표 모두 사용 가능합니다. 이제 약간 어려운 걸 해보죠. 배열을 조금이라도 해보았다면 어렵지는 않습니다.

<b:if cond='data:view.search.label in ["ASP", "PHP", "JSP"]'>
  <!-- 라벨이 ASP, PHP, JSP 중 하나라도 해당되면 실행 -->
<b:elseif cond='data:view.search.label not in ["Foo", "Bar"]'/>
  <!-- 라벨이 Foo, Bar 가 아니면 실행 -->
<b:else/>
  <!-- 모든 조건에 거짓이면 실행 -->
</b:if>

(in) 은 조건에 해당되면, (not in) 이면 조건에 해당되지 않으면 실행합니다.

여기서 주의할 점은 10개를 초과한 조건식은 오류를 발생시키기 때문에 배열이나 중첩을 이용하는 것이 좋습니다.

<b:if cond='조건식 == 1 or 조건식 == 2 or 조건식 == 3 or 조건식 == 4 ...'>
  <!-- 조건식 10개 이상이면 서버 오류, 또는 무효화 처리됨 -->
</b:if>

<조건식> == <값> 과 같은 형식 보다는 배열을 사용하는 편이 보기에도 좋고 효율적입니다.

<b:if cond='조건식 in [1, 2, 3, 4, 5, 6, 7]'>
  ...
</b:if>

아니면 중첩을 이용하는 것도 괜찮은 방법입니다.

<b:if cond='조건식 == 1' >
  <b:if cond='조건식 == 2' >
    <b:if cond='조건식 == 3' >
      <b:if cond='조건식 == 4' >
        …
      </b:if>
    </b:if>
  </b:if>
</b:if>

다른 언어와 마찬가지로 블로거에는 삼항 연산자를 사용할 수 있습니다. 삼항 연산자는 <조건식> ? <true> : <false> 형식으로 주어진 조건식이 참이면 true를 거짓이면 false를 반환하는 형식입니다.

<div>
  <b:class expr:name='data:view.isHomepage ? "PHP" : "ASP"'/>
  <h1>제목</h1>
</div>

위 코드는 현재 페이지가 메인 페이지이면 class 속성에 PHP를, 아니면 ASP를 추가합니다.

<div class='PHP'>
  <h1>제목</h1>
</div>

0 댓글