概要
カスタマイザを条件付で適用します。
生成規則
customizer-switch-applier ::=
ApplySwitch expression{ ( Case integer (, integer )* : customizer* )* ( Default: customizer* )opt }
customizer-switch-applier ::=
If expression{ customizer* } ( Else { customizer* } )opt
解説
ApplySwitch
直後に条件評価のための式を指定します。式の値が Case に続いて指定された 1 個以上の値のうちのいずれかに一致する場合、: に続いて指定されたカスタマイザを適用します。最後に Default で始まる文を記述すると、他の Case に一致しなかった場合にこの部分が処理されます。C 言語の switch〜case ステートメントに類似していますが、break 文のようなものを指定しなくても連続した Case の内容が続けて適用されることはありません。スイッチ番号は線形にスキャンされ、番号の対応する Case が複数あればすべて処理されます。
If
直後に条件評価のための式を指定します。式の値が 0 以外ならば、続く { } に囲まれたブロックのカスタマイザを適用します。式の値が 0 ならば、Else 以下を指定した場合のみ、Else に続くブロックのカスタマイザを適用します。ApplySwitch は主に直接スイッチの値を参照して評価を行うために使用しますが、If は主に数値の比較結果等を評価するために使用します。If、Else 等のキーワードは大文字で始まることと、中括弧 { } は必須であることに注意します。
目的に応じて 2 種類の構文を使用できます。