The Control Flow
If Condition
The Syntax:if { test1 } {
body1
} elseif { test2 } {
body2
} else {
bodyn
}
If you don't like the curly brackets, you can take them out. But then, you will have to give the full thing in one line. I know that after you had a look at that syntax, you are still wondering what in the world that was. Don't worry - an example will set things straight.
#The marriage status script...
#Change the status please
set marital_status "After"
label .thesis -text "Marriage is a three ring circus..."
if { $marital_status=="Before" } {
set ring "Engagement"
} elseif { $marital_status=="During" } {
set ring "Wedding"
} else {
set ring "suffe -"
}
label .proof -text "$marital_status Marriage: $ring ring"
pack .thesis
pack .proof
Run this script and give the 'marital_status' to "Before", "During" and "After" and see the different results.
OperatorsYou will need operators to do the checking. Fortunately, the operators in Tcl are same as in any other language. So a small experience with any language will guarantee that you know all them.
Tcl has two kinds of operators.Relational operators: <, <=, >, >=, ==, != return 0 (false) or 1 (true).
Operator in Tcl | Meaning | Example |
---|---|---|
== | is equal to | 5 == 6 |
!= | is not equal to | 5 != 6 |
< | is less than | 5 < 6 |
<= | is less than or equal to | 5 <= 6 |
> | is greater than | 5 > 6 |
>= | is greater than or equal to | 5 >= 6 |
Logical Operators: && , ! and || operator - AND, NOT and OR Operators.
Operator | Logical Equivalent | Example |
---|---|---|
! expression | NOT | !$a |
expression1 && expression2 | AND | $a > 6 && $a < 10 |
expression1 || expression2 | OR | $a != 6 || $a!=5 |