条件分岐

Pugで条件分岐を行うには、いくつか種類があります。

if文

条件に応じた分岐を行うには、if 条件文を使用します。
ifで一致しなかった場合の処理はelseを使用し、別の条件で処理を行う場合はelse if 条件文を使用します。
それぞれに一致した場合の処理は、改行しインデントを付けて記述します。

条件文には論理演算子や比較演算子などの演算子が使用できます。
詳しくは、演算子ページをご覧ください。

構文

if 条件文
	条件に一致した場合の処理
if 条件文
	条件に一致した場合の処理
else
	条件に一致しなかった場合の処理
if 条件文
	条件に一致した場合の処理
else if 条件文
	条件に一致した場合の処理
else
	条件に一致しなかった場合の処理

サンプルコード

Pug

- var pageType = 'top'

link(rel="stylesheet" href="/assets/css/common.css")

if pageType == 'top'
	link(rel="stylesheet" href="/assets/css/top.css")
else if pageType == 'lp'
	link(rel="stylesheet" href="/assets/css/lp.css")
else
	link(rel="stylesheet" href="/assets/css/page.css")

コンパイル後

<link rel="stylesheet" href="/assets/css/common.css">
<link rel="stylesheet" href="/assets/css/top.css">

unless文

if文の逆で条件に一致しない分岐を行うには、unlessを使用します。
unlessに一致しない場合は、elseを使用します。
なお、if文と違い、さらに別の条件になるようなもの(else unlessのような構文)はありません。

構文

unless 条件文
	条件に一致しなかった場合の処理
unless 条件文
	条件に一致しなかった場合の処理
else
	条件に一致した場合の処理

サンプルコード

Pug

- var num = 100
unless num >= 100
	p="100未満"
else
	p="100以上"

コンパイル後

<p>100以上</p>

case文

対象の値が真か偽かで分岐を行うには、casewhenを使用します。
if文のif 値 == 値に相当します。
また、何れにも一致しない場合に処理を行いたい場合は、defaultを使用します。

条件に一致した場合に何も行わないようにする場合は、- breakを使用します。

構文

case 条件式

when 評価する値
	一致した場合の処理
case 条件式

when 評価する値
	一致した場合の処理
default
	何れも一致しなかった場合の処理
case 条件式

when 評価する値
	- break

サンプルコード

次の例では変数fooが"a"か"ka"かそれ以外の評価を行います。

Pug

- var foo = "a"

case foo
	when "a"
		P="あいうえお"
	when "ka"
		p="かきくけこ"
	default
		P="不明"

コンパイル後

<p>パソコン</p>

次の例では変数fooが"a"または"ka"か"sa"かそれ以外の評価を行います。

Pug

- var foo = "ka"

case foo
	when "a"
	when "ka"
		p="あいうえおかきくけこ"
	when "sa"
		p="さしすせそ"
	default
		P="不明"

コンパイル後

<p>あいうえおかきくけこ</p>

次の例では変数fooが"a"または"ka"の場合は何もしない場合の例です。

Pug

- var foo = "ka"

case foo
	when "a"
	when "ka"
		- break
	when "sa"
		p="さしすせそ"
	default
		P="不明"

コンパイル後

 

条件演算子(三項演算子)

条件分岐を1行で行いたい場合には、条件演算子(三項演算子)を用いることができます。
条件演算子は、条件文 ? 一致した場合 : 不一致した場合のように記述することができます。

次の例では、typeという変数の値がabcならfoo、それ以外ならbarというクラス名を付与するコードです。

Pug

p(class= type == "abc" ? "foo" : "bar")

Pug逆引きリファレンス一覧へ戻る