Using conditionals in a script is a way to execute different parts of a code depending of the result of a condition. What is a condition, the operators (comparison and logical)?
Updated for ECMAScript2015+, it requires at least version ImageJ 1.51r and Java 9. See this post for update [Link].
1. The statement if-else
In programming languages, different blocks of code can be executed depending of a condition. The conditional is defined by the keywordif [Wikipedia]. Fig.1 presents a sketch how the execution is done.![]() |
| Fig.1: Sketch presenting a if statement. Depending of the value (True or False) of the condition symbolized as a question mark, the upper or lower blocks of code are respectively executed. |
1.1. Block of code
In JavaScript, a block of code is delimited by curly brackets (open
{ and closed }). This block contains one or several instructions and are used in many cases like the conditionals and loops.In this example, a block of code is defined and creates a "protected" environment where a local variable
k is defined and is not related to the outside k. That is why the inner k is equal to 5 and the outer k is equal to 7. The same happens in a conditional or in a loop.let k = 7;
{
let k = 5;
IJ.log(`Inner block of code. k = ${k}`);
}
IJ.log(`Outside of the block of code. k = ${k}`);
1.2. Comparison operators
A condition returns a boolean number: True or False. In JavaScript, the various operators are:
| Operator | Description |
| == | equal to |
| != | different of |
| > | greater than |
| < | less than |
| >= | greater than or equal to |
| <= | less than or equal to |
There are two additional operators...
| Operator | Description |
| === | strictly equal to |
| !== | strictly different of |
IJ.log(3 == '3'); // True. No type checking - Dangerous. Do not use it IJ.log(3 === '3'); // False. Strict equality
1.4. Logical operators
The conditions may be combined together with logical operators: and, or and not.| Operator | Description |
| && | AND |
| || | OR |
| ! | NOT |
let j = 6; IJ.log(j > 2 && j < 10); // True
1.4. Syntax of the if-else
The syntax is as follows:<init>
if (<condition>) {
instruction #1;
instruction #2;
...
instruction #N;
}
else {
instruction #A;
instruction #B;
...
instruction #Z;
}
For example, to test if a number is less or greater than 5, we can write the following lines:
let i = 10;
if (i < 5) {
IJ.log(`${i} is less than 5`};
}
else {
IJ.log(`${i} is greater or equal to 5`};
}
2. The if-else-if-else statement
let i = 10;
if (i < 5) {
IJ.log(`${i} is less than 5`};
}
else if (i === 5{
IJ.log(`${i} is equal to 5`};
}
else {
IJ.log(`${i} is greater than 5`};
}
3. The ternary operator
There is a more compact syntax of if-then-else statement...
<variable> = <condition> ? <evaluated when true> : <evaluated when false>
This is used when you want to assign a value to a variable depending of a condition.
let k = 7;
let result = ( k < 5) ? `${k} is less than 5` : `${k} is greater than 5`;
IJ.log(result); // 7 is greater than 5
Thank you for reading.
<< Previous: Strings Next: Loops >>
5. Other crazybiocomputing posts
Further readings are available in ...


No comments:
Post a Comment