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.