**Numeric Comparisons 101 - if** !!!!!! '''[Tcl Tutorial Lesson 6a%|%Previous lesson%|%]''' | '''[Tcl Tutorial Index%|%Index%|%]''' | '''[Tcl Tutorial Lesson 8%|%Next lesson%|%]''' !!!!!! Like most languages, Tcl supports an `if` command. The syntax is: ====== if {expr1} ?then? { body1 } elseif {expr2} ?then? { body2 } elseif { ... } ?else { bodyN }? ====== The words `then` and `else` are optional, although usually `then` is left out and `else` is used. The test expression following `if` should return a value that can be interpreted as representing "true" or "false": %| |False|True|% |a numeric value|0|all others| |yes/no|no|yes| |true/false|false|true| If the test expression returns a string "yes"/"no" or "true"/"false", the case of the return is not checked. True/FALSE or YeS/nO are legitimate returns. If the test expression evaluates to True, then `body1` will be executed. If the test expression evaluates to False, then the ''word'' after `body1` will be examined. If the next word is `elseif`, then the next test expression will be tested as a condition. If the next word is `else` then the final `body` will be evaluated as a command. The test expression following the word `if` is evaluated in the same manner as in the `expr` command. The test expression following `if` should be enclosed within braces. This causes the expression to be evaluated within the `if` command. ''Note:'' as was explained in the [Tcl Tutorial Lesson 6%|%discussion of the expr command%|%], you should always use braces around expressions. ---- ***Example*** ====== set x 1 if {$x == 2} {puts "$x is 2"} else {puts "$x is not 2"} if {$x != 1} { puts "$x is != 1" } else { puts "$x is 1" } ====== <> Resulting output ======none 1 is not 2 1 is 1 ====== <> !!!!!! '''[Tcl Tutorial Lesson 6a%|%Previous lesson%|%]''' | '''[Tcl Tutorial Index%|%Index%|%]''' | '''[Tcl Tutorial Lesson 8%|%Next lesson%|%]''' !!!!!!