If {条件表达式1} {
执行语句1
} elseif {条件表达式2} {
执行语句2
} elseif {条件表达式3} {
执行语句3
} else {
执行语句4
}
注:elseif {条件表达式}为可选
示例:
错误格式:
if {$x<0}
{
set x 0
}
正确格式:
if {$x<0} {set x 0} (不推荐)
if {$x<0} {
set x 0
}
脚本:
set x 2
set y 3
if {$x<$y} {
puts "x is less than y"
}
运行结果:
switch 匹配模式(可选) 字符串 模式1 对应的tcl脚本1 模式2(可选)对应的tcl脚本2 ... default对应的tcl脚本
匹配模式:1、-exact 精确匹配模式(默认模式)
2、-glob 字符串匹配模式
3、-regexp 正则表达式匹配模式
switch匹配模式(可选) 字符串 {
模式1 对应的tcl脚本1
模式2 对应的tcl脚本2
....
模式N 对应的tcl脚本N
default 对应的tcl脚本
}
脚本示例1:
set x 7
set y 7
switch $x \
$y {puts "X=Y"} \
{[0-9]} {puts "<10"} \
default {puts ">10"}
运行结果:
脚本示例2:
set x 7
switch -glob $x {
"1" {puts "one"}
"2" {puts "two"}
"3" {puts "three"}
"$y" {puts "X=Y"}
{[4-9]} {puts "greater than 3"}
default {puts "Not a value bettwen 1 and 9"}
}
执行结果:
示例脚本3:
puts "Who recorded 'Mr Tambourine Man'"
gets stdin artist
switch $artist {
{Bob Dylan} -
{Judy Collins} -
{Glen Campbell} -
{The Byrds} {
puts "$artist recorded 'Mr Tambourine Man'"
}
default {
puts "$artist probably recorded 'Mr Tambourine Man'"
}
}
运行结果:
注:模式 -这样的形式表示这个模式和下一个模式执行相同的tcl语句