Operations in expressions

KCM Core supports the following operations in expressions.

Operation

Description

Operands

Result

Remarks

x Or y

Logical or

Boolean

Boolean

KCM Core uses short-circuit evaluation. If x evaluates to True, y is not evaluated.

x And y

Logical and

Boolean

Boolean

KCM Core uses short-circuit evaluation. If x evaluates to False, y is not evaluated.

x = y

Equal

Boolean

Comparisons on strings are done case-sensitive.

x <> y

Not equal

Boolean

x <= y

Less or equal

Boolean

x < y

Less

Boolean

x >= y

Greater or equal

Boolean

x > y

Greater

Boolean

x + y

Add

Number

Number

The function of the "+" operator depends on its operands.

x + y

Concatenate

String

String

x - y

Subtract

Number

Number

x * y

Multiply

Number

Number

x / y

Divide

Number

Number

x % y

Modulo

Number

Number

Not x

Negation

Boolean

Boolean

-x

Negation

Number

Number

Priorities

When multiple operators occur in an expression, the expression is evaluated in a specific order depending on the operators in the expression. You can use a set of parentheses to change the order of expression evaluation.

The following table shows the priority of the operators used in expressions.

Priority

Operators

1

- (Negation), Not (Negation)

2

* (Multiply), / (Divide), % (Modulo)

3

+ (Add), + (Concatenate), - (Subtract)

4

<= (Less or equal), < (Less), >= (Greater or equal), > (Greater)

5

= (Equal), <> (Not equal)

6

And (logical and)

7

Or (logical or)

A priority of 1 is the highest priority (signed values are evaluated first); a priority of 7 is the lowest priority (Or operations are evaluated last). When operators with different priority levels appear in an expression, operations are performed according to priorities.

When operators of the same priority appear in an expression, operations are performed from left to right within the expression. You can always use parentheses to control the order in which operations are performed. The value of a parenthetical expression is determined from the lowest level to the highest level, following the priority rules within matching sets of parentheses.

Example

1 + 1       # results in 2.
"1" + "1"   # results in "11": two text values concatenated.
(10+15)/5	  # results in 5: 10+15=25, 25/5=5.
10+15/5 	   # results in 13: 15/5=3, 10+3=13.