構築

もしあなたのプログラムに関係なくどのように呼ばれていたのは、非常に有用なことがないのと同じものでした。実際のアプリケーションでさまざまな状況には、フロー制御の本質は異なるコードを呼び出すことによって応答します。この記事では、どのようにし、ループロジックの条件は、アプリケーションの効率的なフロー制御を構築するために使用することを学ぶ。また、どのように別のテンプレートにユーザーをリダイレクトする方法を、外部のテンプレートからコードを含めることを学ぶ。場合、建設の条件と依存性のステートメントで構成されます。ColdFusionのかどうかをTrueまたはFalseを決定するためには、条件を評価します。場合は、条件に該当する場合は、ColdFusionに依存するステートメントを実行します。たとえば、次のコード:ください

 ##myVarに
  

においては、前項の場合の構築は、ColdFusionのテストを参照するかどうかがmyVar myOtherVar超えています。場合は、テストの結果がTrueの場合は、ColdFusion、myVarの値を出力する;場合は、テストの結果がFalseの場合、ColdFusionは何もしません。あなたはColdFusionの代替コードを実行させることができます場合は、条件をテストFalseの場合、以下のとおり:

 ##myVarに ##myOtherVar 

もしcfelseタグを含むように構築する我々は独自に拡張しました。さて、myVarがないmyOtherVarはなく、ColdFusionの出力myOtherVar超えています。また、さらにCFIFに、次のようCFELSEIFと追加の条件を追加する:により延長することができます

 ##myVarに #myVarに+ myOtherVar# 
 ##myOtherVar 

場合、myVarがmyOtherVarに等しい今、ColdFusionは、2つ一緒にし、結果を出力に追加します。注意してCFELSEステートメントは、場合にのみ、両方のCFIFのとをCFELSEIF条件がFalseが実行されます。あなたはあなたCFIFにタグを設定する場合などの条件をCFELSEIFの多くが、追加する場合は、さらに2つまたは3つのとは異なる結果に基づいてもいるのと同じ条件テストすると、スイッチの代わりに建設を検討してください。スイッチを構築し、複数のテストの値に対して、単一の式を評価し、コードをテスト値と一致すること。次のコードスニペットを考慮に関連付けられたブロックを実行します:

 1  2  3 

このスニペットのかどうか、myVarが特定の値を決定するたびにチェックmyVarに3回評価されます。このコードは、より良いcfswitchをブロックを使って書かれています:

 1  2  3 

両方の断片が、同じことをcfswitchを構築するため、myVarが1回ではなく、3回の評価が効率的です。これCFIFの各条件になるまでには、trueの場合、一方cfswitchを単純に一致する値を持つcfcaseのブロックを選択する1つの検出評価ColdFusionのより効率的よりも文CFIFの場合は、cfswitchをステートメントを実行します。CFCASE値は定数でなければ、他の言葉には、次の建築です違法:

 ...  2  ... 

このコードはエラーのため、変数や式のCFCASEのvalue属性で許可されていませんをスローします。以下のコードでは、CFDEFAULTCASEスイッチ構成のCFELSEに相当するには、次の例に示すとおりです:

 1  2  3 いくつかの他の番号

もしcfcaseの値のいずれcfswitchをの式と一致すると、ColdFusion CFDEFAULTCASEブロックを実行します。利点cfswitchを提供しても、アクセスではまだロジックCFIFを使用する必要があります。例を挙げると、次のコードブロック:

 ##myVarに #myVarに+ myOtherVar#  ##myOtherVar 

このコードは、このCFIFを構築cfswitchをに変換することはできませんのではなく、単一の式を単一のテストを、複数のテストが含まれます。 cfswitchを実行するために一致するcfcaseを見つけるために"検索キー"として、その1つの式を使用します。特定の終点には、特定の出発点からループをループの最もシンプルなタイプ、たとえば、9時59から。ループのこのタイプのインデックスループと呼ばれ、コードで表示されます。

このコードはループの前に。 
#i#は
このコードはループの後に。

すべての間でおよびループの本体です。本体は1回、各ループは、実行され、ループインデックスは1で、ループの身体のそれぞれの実行後にインクリメントされます。いったい="i"の意味のインデックスはそれで?ループのインデックスは、カウンタは、現在の繰り返しループの番号が含まれています。言い換えれば、ループを通過するのは初めてのため、iは1が含まれます。を介して次の時間、私のように2が含まれます。後、私は10に達すると、ループの最後に実行されます。ループのこのタイプの1つの追加属性を持ちます。もし我々ループを後方に10から1をしたいと、私たちはコードのステップの属性などが含まれます。

このコードはループの前に。 
#i#は
このコードはループの後に。

場合は、事前のループの数を知っているインデックスループが適切です。できることなら、何回しかし、また、ループを不特定多数の中に指定された条件がtrueであるように、コードで示す。

これは、ループを1つの繰り返しです。 

RandRange(1,10)、1〜10の間の乱数を返します。コードの中にポテンヒットがTRUEの場合、ループ、および保持後RandRange()が返す10、我々にFALSEを台無しに設定します。ループの場合、再度実行しようとすると、条件をテストFALSEの場合、および実行を停止する前に、ループを実行します。クエリ上でのcfloopことも、ループのようにコードに示すように。は、シャープ記号を使用してクエリオブジェクト名サラウンドするときにクエリではループを覚えておいてください。

のSELECT得意先からの会社 #得意# 

cfloopタグの各行GetEmployeesはクエリオブジェクトに存在する上でのコードのループでは、クエリ内の各会社名を出力します。ループのこのタイプのことを除いてのcfloop内の別のCFOUTPUTの場合CFOUTPUTだけでは行うことはできません(何か)ネストすることができますは、cfoutputステートメントに似ています。

記事は、ジョンフォックスが提出


免責事項:弊社のウェブサイトは、この資料の内容については責任を負いません。 Webarticles無料の情報リソースです。
重要: この記事は、"構築"自動ソフトウェアによって翻訳された。大変申し訳ございませんが発生した可能性があります任意のスペルミスを感じている。お客様のご理解いただき、ありがとうございます。


Online: 355 users browsing the articles directory