ColdFusionでは、他のプログラム言語同様、if文とswitch文の条件式があります。条件の際に使用する演算子は、一つ前のページに記載した演算子を使って条件文を組み立てます。 if文の条件フローで使用するタグは、<cfif>, <cfelse>, <cfelseif> タグです。
<cfif 条件式> 条件が一致した場合に表示や処理を行うHTML, CFML </cfif>
簡単な<cfif>による条件式の例を以下に紹介します。
<cfset pref="東京都"> <cfif pref EQ "神奈川県"> あなたは神奈川県に住んでいます。 </cfif>
上記は、ローカル変数prefの値が"神奈川県"という文字列かどうかで条件分岐をしています。 <cfif>〜</cfif>で囲った範囲が条件指定の範囲となります。条件に一致すると、メッセージが画面に表示されます。
次に、条件に一致しなかった場合に別の処理を行うために <cfelse> を追加します。
シンタックスは下記となります。
<cfif 条件式> 条件が一致した場合に表示や処理を行うHTML, CFML <cfelse> 条件が一致しなかった場合に表示や処理を行うHTML, CFML </cfif>
上記で追加した <cfelse> の後が、条件に一致しなかった処理となります。<cfelse>は<cfif>〜</cfif>ブロック内に記載する事に注意して下さい。例を下記に紹介します。
<cfset pref="東京都"> <cfif pref EQ "神奈川県"> あなたは神奈川県に住んでいます。 <cfelse> あなたは神奈川県以外に住んでいます。 </cfif>
ローカル変数prefの値が"神奈川県"という文字列かどうかで条件分岐をしています。今回は、条件が一致しなかった場合も「あなたは神奈川県以外に住んでいます。」とメッセージが表示されます。
次は、最初の条件に一致しなかった場合に、次に別の条件分岐を行うために <cfelseif> を追加します。
シンタックスは下記となります。
<cfif 条件式1> 条件式1が一致した場合に表示や処理を行うHTML, CFML <cfelseif 条件式2> 条件式2が一致した場合に表示や処理を行うHTML, CFML <cfelseif 条件式3> 条件式3が一致した場合に表示や処理を行うHTML, CFML ... <cfelse> どれも条件が一致しなかった場合に表示や処理を行うHTML, CFML </cfif>
<cfelseif> の後に新しい条件式を指定すること、また、<cfelseif>は複数指定することができる事が特徴です。
例を下記に紹介します。
<cfset pref="東京都"> <cfif pref EQ "神奈川県"> あなたは神奈川県に住んでいます。 <cfelseif pref EQ "千葉県"> あなたは千葉県に住んでいます。 <cfelseif pref EQ "東京都"> あなたは東京都に住んでいます。 <cfelse> あなたは神奈川県、千葉県、東京都以外に住んでいます。 </cfif>
ローカル変数prefの値が"神奈川県"か、それとも"千葉県"か、それとも"東京都"か、で条件分岐をしています。今回は、3回目の条件式で条件が一致したため、「あなたは東京都に住んでいます。」というメッセージが表示されます。
<cfelseif>が増えてしまうのは、条件処理としては複雑になりがちです。その場合は、switch文による条件処理を使う事をお勧めします。switch文の説明は次ページをご覧下さい。
条件処理によっては、一度に複数の条件式を記載することがあります。多くのプログラミング言語と同様に、論理演算が用意されています。よく使用する論理演算としては、AND, OR, NOT があります。また、OR よりも AND が優先される事や、OR を優先させたい場合は、括弧を付けると良い事も同様です。
シンタックスは下記となります。
<cfif (条件A OR 条件B) AND 条件C> 条件Aもしくは条件Bのどちらかに一致し、かつ、条件Cにも一致している場合に表示や処理を行うHTML, CFML </cfif>コード例は下記となります。
<cfset pref="東京都"> <cfset age="36"> <cfif (pref EQ "東京都" OR pref EQ "埼玉県") AND age GTE 30> あなたは東京都か埼玉県に住んでいて、かつ、年齢が30歳以上の方です。 </cfif>
※論理演算式の詳細は、ColdFusion 10 のオンラインマニュアル 『Adobe ColdFusion 10 アプリケーションの開発 - 演算子のタイプ』 をご確認して下さい。