总有别人不曾走过的路,总有别人不曾目睹的风景......
Tcl读书笔记(十)——流程控制
上一篇 /
下一篇 2012-07-26 11:46:14
/ 个人分类:Tcl
1. if命令:
if命令可以拥有多个elseif子命令,每个子句有相应的表达式和脚本,最后还可以拥有一个else子句。如果一条if命令没有else子句,而所有的检测都不能通过时,它就不会执行任何脚本,直接返回一个空字符串。
2. switch命令:
第一种形式:第一个参数是要检测的值,第二个参数是包含一个或多个元素对的列表。每一对的第一个元素是要与检测值进行比较的模式,第二个元素是如果模式匹配后将执行的脚本。
switch $x {
a {incr t1}
b {incr t2}
c {incr t3}
}
第二种形式,将模式和脚本作为独立的变量传入。
switch $x a{incr t1} b{incr t2} c{incr t3}
如果switch命令的最后一个模式是default,switch在其他的模式都无法匹配时就会执行default对应的脚本。
如果switch命令的某个脚本是-,那么switch会使用下一个模式对应的脚本。
在switch添加注释时,只能把注释加在脚本部分。
3. 循环命令:while、for和foreach
while命令获取两上参数:一个表达式和一个
Tcl脚本。它先处理表达式,如果结果为非零,就执行Tcl脚本。这个过程将不断重复直到表达为假,即结果为0。
for命令的第一个参数是初始化脚本;第二个参数是决定终止循环的表达式;第三个参数是再初始化脚本,它在每次执行完一次循 环块之后,再次检测终止表达式之前执行;第四个参数是构成循环块的脚本。
foreach命令遍历一个列表中的所有元素。第一个参数是变量名,第二个是列表,第三个构成循环体的Tcl脚本。foreach对列表中的每一个元素顺序执行脚本块。在每次执行脚本块前,foreach将变量设为列表的下一个元素。
foreach命令还可以并行地处理多个列表,每个列表需要提供独立的变量集。
4. 循环控制:break和continue
break命令立即终止循环。continue命令只终止当前循环。
5. eval命令:
eval是用于创建和运行Tcl脚本的通用构造块。它接受任意多个参数,把它们用分隔符串接起来,然后把串接的结果作为一个Tcl脚本处理。
eval的一个用途是生成命令,把它们存放在变量中,然后再把这个变量作为Tcl脚本运行。如:
% set reset {
%set a 0
%set b 0
%set c 0
% }
% eval $reset
收藏
举报
TAG:
TCL
tcl
Tcl