Startseite / Vorlagenentwicklung / Vorlagensyntax / Ausdrücke / vergleich. Ausdrücke

Vergleichende Ausdrücke

Vergleichende Ausdrücke sind ein Teilbereich der logischen Ausdrücke und liefern einen Wahrheitswert ('true' oder 'false') zurück. Für vergleichende Ausdrücke können folgende Operatoren eingesetzt werden:

  • größer '>'
  • kleiner '<'
  • größer oder gleich '>='
  • kleiner oder gleich '<='
  • gleich '=='
  • ungleich '!='

Vergleichende Operationen können innerhalb der Vorlagensyntax verwendet werden. Eine Möglichkeit, sie auszugeben, ist über die Anweisung $CMS_VALUE(...)$.

'=='-Operator

Die Prüfung auf Gleichheit ist über den Operator '==' möglich:

a==b

Bei der Auswertung des Ausdrucks wird geprüft, ob a gleich b ist.

Beispiel:

$CMS_SET(a, 2)$
$CMS_SET(b, a)$
$CMS_VALUE(a==b)$

liefert den Wert 'true' zurück.

'!='-Operator

Die Prüfung auf Ungleichheit ist über den Operator '!=' möglich:

a!=b

Bei der Auswertung des Ausdrucks wird geprüft, ob a ungleich b ist.

Beispiel:

$CMS_SET(a, 2)$
$CMS_SET(b, a)$
$CMS_VALUE(a!=b)$

liefert den Wert 'false' zurück.

'<'-Operator

Die Prüfung 'kleiner als' ist über den Operator '<' möglich:

a<b

Bei der Auswertung des Ausdrucks wird geprüft, ob a kleiner b ist.

Beispiel:

$CMS_SET(a,2)$
$CMS_SET(b,a)$
$CMS_VALUE(a<b)$

liefert den Wert 'false' zurück.

'<='-Operator

Die Prüfung 'kleiner gleich' ist über den Operator '<=' möglich:

a<=b

Bei der Auswertung des Ausdrucks wird geprüft, ob entweder a kleiner b ist oder ob a gleich b ist. Trifft eine der Bedingungen zu, liefert der Ausdruck den Wert 'true' zurück.

Beispiel:

$CMS_SET(a,2)$
$CMS_SET(b,a)$
$CMS_VALUE(a<=b)$

liefert den Wert 'true' zurück.

'>'-Operator

Die Prüfung 'größer als' ist über den Operator '>' möglich:

a<b

Bei der Auswertung des Ausdrucks wird geprüft, ob a größer b ist.

Beispiel:

$CMS_SET(a,2)$
$CMS_SET(b,a)$
$CMS_VALUE(a>b)$

liefert den Wert 'false' zurück.

'>='-Operator

Die Prüfung 'größer gleich' ist über den Operator '>=' möglich:

a>=b

Bei der Auswertung des Ausdrucks wird geprüft, ob entweder a größer b ist oder ob a gleich b ist. Trifft eine der Bedingungen zu, liefert der Ausdruck den Wert 'true' zurück.

Beispiel:

$CMS_SET(a,2)$
$CMS_SET(b,a)$
$CMS_VALUE(a>=b)$

liefert den Wert 'true' zurück.

Auswertungsreihenfolge

In FirstSpirit werden Kombinationen einzelner Operatoren innerhalb logischer bzw. vergleichender Ausdrücke wie in anderen Programmiersprachen (z.B. Java) nach einer bestimmten Rangfolge ausgewertet.

Wird eine Und-Verknüpfung (Konjunktion) a && b verwendet, so wird b nicht ausgewertet, wenn a bereits den Booleschen Wert 'false' zurückliefert. Bei der Verwendung einer Oder-Verknüpfung (Disjunktion) a || b wird b nicht ausgewertet, wenn a bereits den Booleschen Wert 'true' zurückliefert.

Zusätzlich gibt es eine Rangfolge der Operatoren, d.h. vergleichende Ausdrücke ("==", "!=", "<", ">", "<=", ">=") verfügen über eine höhere Auswertungspriorität als logische Ausdrücke ("&&", "||"). Dadurch werden vergleichende Ausdrücke vor den logischen Ausdrücken ausgewertet, wodurch eine zusätzliche Klammerung entfallen kann.

Innerhalb der vergleichenden Ausdrücke haben darüber hinaus die Operatoren "<", ">", "<=" und ">=" eine höhere Priorität als die Operatoren "==" und "!=" und werden somit zuerst ausgewertet. Innerhalb der logischen Ausdrücke hat "&&" eine höhere Priorität als "||".

Wichtig Vor der Auflösung logischer und vergleichender Ausdrücke werden zusätzlich noch Arithmetische Operationen ausgeführt.
Somit ergibt sich folgende Rangfolge:

  1. * / % (Multiplikation, Division, Modulo)
  2. + - (Addition, Subtraktion)
  3. < > <= >= (kleiner, größer, kleiner oder gleich, größer oder gleich)
  4. == != (gleich, ungleich)
  5. && (und)
  6. || (oder)

Operatoren mit der gleichen Rangfolge werden von links nach rechts ausgewertet. Durch Klammerung kann die Rangfolge beeinflusst werden.

Beispiel:

Der Text "Der Wert der Variablen a beginnt mit b bzw. B." soll ausgegeben werden, wenn a nicht Null ist und der Wert (hier Ball) mit dem Buchstaben "b" (in Groß- oder Kleinschreibung) beginnt.

$CMS_SET(a, "Ball")$
$CMS_IF(a != null && a.charAt(0).toString.lowerCase == "b")$
Der Wert der Variablen a beginnt mit b bzw. B.
$CMS_END_IF$

In diesem Beispiel liefern sowohl der Ausdruck a != null als auch der Ausdruck a.charAt(0).toString.lowerCase == "b" den Booleschen Wert 'true' zurück. Ergebnis: Der Text wird ausgegeben.

In einem zweiten Beispiel soll der Text "Der Wert der Variablen a beginnt mit b bzw. B." ausgegeben werden, wenn a nicht Null ist und der Wert mit dem Buchstaben "b" (in Groß- oder Kleinschreibung) beginnt.

$CMS_SET(a, null)$
$CMS_IF(a != null && a.charAt(0).toString.lowerCase == "b")$
Der Wert der Variablen a beginnt mit b bzw. B.
$CMS_END_IF$

In diesem Fall wird der Text nicht ausgegeben, da zunächst der Ausdruck a != null ausgewertet wird. Dieser liefert das Ergebnis 'false', so dass der niedriger priorisierte Ausdruck (hier: &&) nicht mehr zum Tragen kommt.

© 2005 - 2024 Crownpeak Technology GmbH | Alle Rechte vorbehalten. | FirstSpirit 2024.13 | Datenschutz