Tcl - 决策语句

决策结构要求程序员指定一个或多个由程序评估或测试的条件,以及如果确定条件为 true 则要执行的一个或多个语句,以及可选的如果确定条件为 false 则要执行的其他语句。

以下是大多数编程语言中典型决策结构的一般形式 −

决策

Tcl语言内部使用expr命令,因此我们不需要显式使用expr语句。

Tcl语言提供以下类型的决策语句 −

序号 语句与描述
1 if 语句

"if"语句由一个布尔表达式后跟一个或多个语句组成。

2 if...else 语句

"if"语句后面可以跟一个可选的"else"语句,该语句在布尔表达式为 false 时执行。

3 嵌套 if 语句

您可以在另一个"if"或"else if"语句内使用一个"if"或"else if"语句。

4 switch 语句

switch 语句允许测试变量是否与值列表相等。

5 嵌套 switch 语句

您可以在另一个 switch 语句中使用一个 switch 语句。

? : 运算符

我们在前面的章节中介绍了条件运算符 ? :,它可以用来替换if...else语句。 它具有以下一般形式 −

Exp1 ? Exp2 : Exp3;

其中 Exp1、Exp2 和 Exp3 是表达式。 注意冒号的使用和位置。

Exp1 被评估,如果为 true,则对 Exp2 进行求值,并成为整个表达式的值。如果 Exp1 为 false,则计算 Exp3 并且其值成为表达式的值。 例子如下所示。

#!/usr/bin/tclsh

set a 10;
set b [expr $a == 1 ? 20: 30]
puts "Value of b is $b\n"
set b [expr $a == 10 ? 20: 30]
puts "Value of b is $b\n" 

当你编译并执行上面的程序时,它会产生以下结果 −

Value of b is 30
Value of b is 20