Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Warning

Looking for the documentation on the newest versions of SIL Engine and the Simple Issue Language for Jira 8 for Server/Data Center? Click here !

Contents

Table of Contents
 


Excerpt

Statements provide a convenient method to execute conditional or repetitive operations. The syntax is C/C++/Java like, so things should be easy to grasp.

If-Else Statement

 

The if-else statement offers support for conditionally executing operations.

...

Code Block
if (isNotNull(fixVersions) and affectedVersions == {"1.1"})
{
    affectedVersions = {"1.1", "1.0" , "1.2"};
    fixVersions = {"1.2" , "1.2" , "1.3"} ;
}
else
{
    affectedVersions = {"1.1"};
    fixVersions = {"1.0"};
}

 


For Statement

The for statement provides a compact way to iterate over a range of values. Programmers often refer to it as the for loop because it repeatedly loops until a particular condition is satisfied.

 

 

Tip

In SIL the for statement has two forms:

  • the standard for or simply for form
  • the foreach form

...

Code Block
for(<init>; <condition>; <increment>){
   Instruction1;
   ...
   InstructionN;
}
Note

For this first form, the <init> can be an attribution of an already defined variable or a definition for a new variable.

...

Code Block
for(<variable_definition> in #{array}){
   Instruction1;
   ...
   InstructionN;
}

Examples 

Example 1 (standard form)

...

Code Block
for(string user in watchers){
   print(user);
}

While Statement 

The while statement offers support for repeated executions. This form evaluates the condition first and then executes the instructions in the body.

...

Code Block
number i = 1;
while(i <= 3) {
    multisel = arrayAddElement(multisel,"value" + i);
    i = i + 1;
}

...

 

Do-While Statement

 

The do-while statement is similar to the while statement, except the condition is evaluated after the execution of the encapsulated block. So,even if the condition is false, the instructions will still be evaluated once.

 

Syntax

The general syntax is:

Code Block
do {
    Instruction1;
    ...
    InstructionN;
} while(condition);

...

The switch statement offers support for executing different operations depending on the value of a variable. The variable can be either a number or a string.

Syntax

The general syntax for this is:

Code Block
switch(variable) {
    case value1:
		Instruction11;
		...
		Instruction1N;	
	[break;] 
    case value2:
		Instruction21;
		...
		Instruction2N;
	[break;]
	...
	case valueN:
		InstructionM1;
		...
		InstructionMN;
	[break;]
	[default:
		InstructionDef1;
		...
		InstructionDefN;]
}
Note

Note: the default branch can be omitted as well as the break statements.

Example

Code Block
switch (season) {
    case "Summer":
        print("It's too hot!");
        break;
    case "Winter":
        print("It's too cold!");
        break;
    default:
        print("It's just fine!");
}

...

The break statement can be used in two the following situations:

  • inside a loop (for, while): when encountering the break, the execution of the loop is terminated and the control is transfered to transferred to the statement that follows the loop;
  • in switch statements: when a case is followed by a break, it does not execute subsequent cases and control is transfered transferred out of the switch statement.

Example

Code Block
for (number i = 0; i < 10; i = i + 1) {
   if (i >= 5) {
	  break;
   }
   print(i);
}

...

Code Block
number i = 1;
while (i <= 10) {
	if (i % 3 == 0) {
		i = i + 1;
		continue;
	}
	print(i);
	i = i + 1;
}

See also