NIPO ODIN Version 5.17
Common Mistakes in Expressions
This section describes common mistakes made in expressions, where a syntax check does not reject the syntax used but where a misunderstanding exists on how the expression is evaluated. These examples focus of filtering constructions.
Incorrect expressions and how to correct them
Incorrect expression
|
What it was intended to do
|
What it does
|
Correct expression
|
*IF [20 < Q2 < 40]
|
Check if Q20 is between the values 20 and 40.
|
This firsts checks if 20 is smaller than Q2 (result 0 or 1) then if the result is smaller than Q40.
|
*IF [ Q2 > 20 & Q2 < 40 ]
|
*IF [Q20,3\4\5]
|
Check if Q20 has code 3, 4 or 5 marked.
|
This checks if Q20 has code 3. Then it checks if either the result of the expression, or 4, or 5 are true. Any value above 0 is always considered true, therefore the expression always results in 1.
|
*IF [ Q20,3,4,5 ]
|
*IF [ Q21=1,2,3 ]
|
Check if Q21 has code 1, 2 or 3 marked.
|
This checks if Q21 is equal to the expression 1,2,3. The latter expression checks if position 1 in the U-file contains a 2 or a 3.
|
*IF [ Q21,1,2,3 ]
|
*IF [ Q21 = 1-3 ]
|
Check if Q21 has code 1, 2 or 3 marked.
|
This checks if the value of Q21 equals -2 (1-3).
|
*IF [ Q21,1,2,3 ]
|
*IF [ #Q21 = 1 ]
|
Check if Q21 is not equal to 21
|
This first checks if Q21 is not empty, then compares the result to 1. In other words, the expression returns 1 if Q21 is not empty.
|
*IF [ #(Q21 = 1) ]
|
|