Skip to main content

Control Statements

Statements that control the flow of execution

for

A control statement that loops through a range of numbers of a list of elements

Syntax

The for statement comes in 2 flavours:

Looping through a range of numbers
for varname = expression TO expression (step number)?
(statement)*
next

The optional step operator is the number to iterate by which defaults to 1

Looping through a list of elements
for varname in expression
(statement)*
next

Description

The for statement is used to iterate through numbers or elements and execute some code.

Examples

Iterating through a range of values

// Print out the numbers 1 to 10
for i=1 to 10
print i
next

Iterating through a range of values using a step value

// Print the number 2, 4, 6, 8 and 10
for i=2 to 10 step 2
print i
next

Iteration through values in an array

for i in [1,7,2,10]
print i ^ 2
next

Getting a list of available currencies and iterating through them printing our the currency pair

currencies = find ${currency:public}
for fx in currencies
print fx.currency + "/" + fx.base
next

if

Used to test a boolean condition and take appropriate actions

Syntax

You can use the if structure like the below:

if condition
(statement)*
(elseif condition (statement)*)*
(else (statement)* )?
end

Or you can use a single line assignment conditional expression using a ? operator:

varname = condition ? true_expression : false_expression

Description

The if statement is a control statement - it controls the flow of the application based on the value of a boolean condition. An if statement can have an multiple elseif blocks which will be sequentially checked to see if there condition is true and an optional else block of statements that execute if the if or elseif condition does not match.

The single line assignment conditional expression can be used to test a condition and assign a value to a variable based on the trueness of the condition. This can also be used in SMART data expressions, e.g.

BASE.size() < 10 ? BASE : OTHER

Examples

A simple condition that checks the value of a variable

if a==1
print "a is 1"
end

A multiple condition if statement

if a==1 and b>5
a=b
end

An example of using an else block that will execute if a is something other than the value 1

if a==1
a=a+1
else
a=a-1
end

An example showing 2 if conditions (if and elseif) and a else block that will execute if either of the if conditions don’t match

if a==1
a=a+1
elseif a>5
a=a+10
else
a=a-1
end

An example showing how to use a single line variable assignment example:

a = score>85 ? "Score is high" : "Score is low"

while

Iterates through some lines of code whilst a condition remains true

Syntax

while condition
(statement)*
end

Description

The while command executes some code whilst a condition remains true

Warning - ensure that the condition can at some point become false, otherwise the code will execute endlessly

Examples

a=99
while a>1
a = a/2
end

throw

Throw a custom exception

Syntax

throw expression

Description

The throw command allows you to throw a custom exception that will return to the calling application.

Examples

throw "Invalid value for category [" + cat + "] must be 'x' or 'y'"