Konstruiert

Wenn Ihr Programm nicht das Gleiche, egal wie sie genannt wurde, wäre es nicht sehr nützlich. Eine echte Anwendung reagiert auf unterschiedliche Situationen, indem Sie verschiedene Codes, die das Wesen der Flusskontrolle ist. In diesem Artikel erfahren Sie, wie Sie mit bedingten und Loop-Logik, um eine effiziente Flusskontrolle für Ihre Anwendung zu bauen. Außerdem erfahren Sie, wie Sie die Benutzer zu einer anderen Vorlage umzuleiten, und wie Sie Code aus externen Vorlagen enthalten. Wenn ein Konstrukt besteht aus einer Bedingung und einer abhängigen Anweisung. ColdFusion wertet die Bedingung, um festzustellen, ob es richtig oder falsch ist. Wenn die Bedingung erfüllt ist, führt ColdFusion Die abhängige Anweisung. Nehmen wir zum Beispiel den folgenden Code ein:

 # # myVar 
  

In den vorangegangenen Wenn konstruieren, um zu sehen, ColdFusion testet, ob myVar größer ist als myOtherVar. Falls das Testergebnis ist True, Ausgänge ColdFusion der Wert myVar, wenn das Testergebnis False ist, wird ColdFusion nichts tun. Sie können ColdFusion alternativen Code auszuführen, wenn die Bedingung False Tests, wie folgt:

 # # myVar  # # myOtherVar 

Wir haben die ursprünglichen verlängert werden, wenn eine CFELSE Tag gehören zu konstruieren. Nun, wenn myVar ist nicht größer als myOtherVar, ColdFusion Ausgänge myOtherVar. CFIF Sie können sogar noch weiter erweitern, indem zusätzliche Bedingungen in CFELSEIF, wie folgt:

 # # myVar  # # myVar + myOtherVar 
 # # myOtherVar 

Nun, wenn myVar ist gleich myOtherVar, fügt ColdFusion die beiden zusammen und gibt das Ergebnis. Beachten Sie, dass die CFELSE Anweisung führt jetzt nur noch, wenn die beiden CFIF und CFELSEIF Bedingungen falsch sind. Sie können beliebig viele CFELSEIF Bedingungen, wie Sie einen Tag CFIF wollen, aber wenn Sie mehr als zwei oder drei auf der Basis verschiedener Ergebnisse aus der gleichen Voraussetzung testen, sollten Sie überlegen, ein Switch anstatt zu konstruieren. Ein Switch konstruieren wertet einen einzigen Ausdruck gegen mehrere Testwerte und führt dann den Code-Block mit dem Test-Wert, entspricht. Betrachten Sie die folgende Code-Snippet verbunden sind:

 Eins  Zwei  Drei 

Dieser Ausschnitt bewertet myVar dreimal, überprüfen Sie nach jeder myVar um festzustellen, ob ein bestimmter Wert unterschritten wird. Dieser Code ist besser, mit einem CFSWITCH Block geschrieben:

 Eins  Zwei  Drei 

Beide Auszüge dasselbe tun, aber die CFSWITCH Konstrukt ist effizienter, weil es wertet myVar einmal statt dreimal. ColdFusion führt CFSWITCH Aussagen effizienter als es CFIF Aussagen, weil CFIF jede Bedingung, bis er sieht ein, dass das stimmt, während CFSWITCH wählt einfach die CFCASE Block mit dem passenden Wert ergibt. CFCASE Werte konstant sein muß, mit anderen Worten, ist die folgende Konstruktion unzulässig:

 ...  Zwei  ... 

Dieser Code wäre ein Fehler, da Variablen und Ausdrücke sind nicht an Wert CFCASE Attribut zulässig zu werfen. In dem folgenden Code wird CFDEFAULTCASE des switch-Konstrukts ist äquivalent zu CFELSE, wie das folgende Beispiel zeigt:

 Eins  Zwei  Drei  Einige andere Zahl 

Wenn keiner der CFCASE Werte der Ausdruck in CFSWITCH entsprechen, führt die ColdFusion CFDEFAULTCASE blockieren. Auch mit den Vorteilen von CFSWITCH vorgesehen, manchmal müssen Sie noch CFIF Logik. Nehmen wir zum Beispiel den folgenden Code-Block:

 # # myVar  # # myVar + myOtherVar  # # myOtherVar 

Dieser Code kann nicht konvertiert werden, weil diese CFSWITCH CFIF Konstrukt enthält mehrere Prüfungen statt eines einzigen Test mit einem einzigen Ausdruck. CFSWITCH nutzt seine einzigen Ausdruck als "Nachschlag-Schlüssel", bis die passenden CFCASE zur Ausführung zu finden. Die einfachste Form von Schleifen Schleifen von einem bestimmten Ausgangspunkt zu einem bestimmten Endpunkt, z. B. zwischen eins und zehn. Diese Art der Schleife ist eine so genannte Indexdatei Schleife und ist im Code angezeigt.

Dies ist der Code vor der Schleife. 
# # i
Dies ist der Code nach der Schleife.

Alles zwischen und ist der Körper der Schleife. Der Körper wird einmal für jede Schleife ausgeführt wird, und die Schleife wird von 1 nach jeder Ausführung der Körper der Schleife erhöht. Was genau heißt index = "i" bedeutet das? Der Index der eine Schleife ist ein Zähler mit der Zahl der die aktuelle Iteration. Mit anderen Worten, zum ersten Mal durch die Schleife würde ich enthalten 1. Das nächste Mal durch, würde ich 2 enthalten und so weiter. Nachdem ich 10 erreicht, wird die Schleife ein letztes Mal ausgeführt. Diese Art der Schleife ein zusätzliches Attribut. Wollten wir Schleife rückwärts von 10 bis 1, würden wir auch die Schritt-Attribut, wie in den Code.

Dies ist der Code vor der Schleife. 
# # i
Dies ist der Code nach der Schleife.

Ein Index-Schleife ist geeignet, wenn Sie die Anzahl der Schleifen im Voraus wissen. Sie können aber auch Schleife eine unbestimmte Anzahl von Zeiten, während eine bestimmte Bedingung erfüllt ist, wie in den gezeigten Code ein.

 Dies ist ein Durchlauf durch die Schleife. 

RandRange (1,10) liefert eine Zufallszahl zwischen 1 und 10. Der Code bleibt Schleife während Bloop TRUE ist, und nach randRange () liefert 10, setzen wir Bloop als FALSCH. Wenn die Schleife versucht, wieder auszuführen, die Bedingung FALSE Tests und die Ausführung stoppt vor dem Schleifen ausführt. Cfloop können auch Schleife über eine Abfrage, wie in den gezeigten Code ein. Beachten Sie, dass, wenn man looping über Fragen, die Sie nicht Surround die Abfrage Objektname mit einer Raute-Zeichen.

 SELECT Firma FROM Company  CompanyName # # 

Die cfloop in der Schleife über jede Zeile, die in der GetEmployees Query-Objekt-und Ausgänge Firmennamen in der Abfrage. Diese Art der Schleife ist ähnlich wie bei einem CFOUTPUT Anweisung, nur dass cfloop innerhalb eines anderen CFOUTPUT werden (etwas, das man nicht mit CFOUTPUT allein tun können) verschachtelt werden kann.

Ein Artikel eingereicht von John Fox


Disclaimer:Unsere Website ist nicht verantwortlich für den Inhalt dieses Artikels. Webarticles ist eine kostenlose Informationsquelle.
Wichtig: Dieser Artikel "Konstrukte" wurde durch ein automatisches Software übersetzt. Wir fühlen uns leid für alle Rechtschreibfehler, die möglicherweise aufgetreten sind. Vielen Dank für Ihr Verständnis.


Online: 341 users browsing the articles directory