查看: 2502|回复: 1

TCL学习笔记(五)——流程控制

[复制链接]

该用户从未签到

发表于 2012-8-28 11:14:21 | 显示全部楼层 |阅读模式
分享到:
本帖最后由 i电子 于 2012-8-28 11:17 编辑

   TCL中有用于控制流程脚本执行流程的命令,它与C语言及其它高级语言的流程控制相似,包括ifwhileforforeachswitcheval等。
         if:这个命令有两个参数,第一个参数是表达式,第二个参数是一个TCL脚本,如下式所示:
if {$x < 0} {
···
} elseif {$x == 0} {
···
} elseif {$x == 1} {
···
} else {
···
}
两个参数都用大括号引用,这样直到命令执行前都不会发生替换。这边需要注意的是左边大括号必须在它前一个单词的同一行,不然会发生错误,如下式所示,解析器会认为if{$x < 0}表示的就是一条命令,报告if命令因参数不足而导致错误。
if {$x < 0}
{
···
} else
{
···
}

switch:此命令是用一个值与很多模式比较,执行能匹配的那个模式对应的TCL脚本。命令形式如下:
switch $x {
      a{···}
      b{···}
      c{···}
      d{···}
}

whileforforeach:这三个命令都是循环命令,都是循环执行一段TCL脚本,不同之处在于它们决定退出循环的方式。
while命令有两个参数,分别是表达式和TCL脚本,在执行命令时首先处理表达式,如果表达式的结果非零则执行TCL脚本,命令形式如下:
while {$x > 0} {
···
}
for命令有四个参数,第一个参数是初始化脚本;第二个参数是决定循环终止的表达式;第三个参数是再初始化脚本;第四个参数是循环执行的脚本。命令形式如下:
for {set i 0} {$i < 7} {incr i 1} {
···
}
         foreach命令通过遍历一个列表中的所有元素来执行循环,其中有三个参数,第一个参数是变量名,第二个参数是列表,第三个参数是构成循环的TCL脚本。命令形式如下:
foreach {x} {a b c d f} {
···
}
         此命令是在TCL中特有的,这边详细说明一下,如图1所示,其中第一个参数中有两个变量名,因此每次需要读取列表中的两个元素,而在脚本中对这两个元素值进行输出。
1.jpeg
1

         eval:此命令用于创建和运行TCL脚本的通用构造块,它的其中一个用途是能执行多个命令,可以先将一些命令放在变量中,然后用eval命令将变量的值作为脚本运行,如图2所示。
2.jpg
2

         source:此命令可以读取一个文件,然后将文件内容作为TCL脚本运行。如我在当前文件目录下有个文件:hoki.tcl,文件内容就是一条命令:puts“Hoki’blog——冰冻三尺非一日之寒!,然后用source命令读取这个文件,如图3所示,发现TCL也支持中文啊!
3.jpg
3

回复

使用道具 举报

  • TA的每日心情
    无聊
    2013-2-1 13:58
  • 签到天数: 9 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2012-9-17 14:47:26 | 显示全部楼层
    冰冻三尺非一日之寒
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-11-22 22:22 , Processed in 0.129521 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.