一、TCL循环

| 循环类型 | 描述 |
|---|---|
| while | 重复声明语句或一组,当给定的条件为真。它测试条件在执行循环体前。 |
| for循环 | 执行语句多次,序列和简写管理循环变量的代码。 |
| 内嵌循环 | 可以使用一个或多个循环内再使用其它的while语句,或do…while循环。 |
循环控制语句
循环控制语句改变其正常的顺序执行。当执行离开范围,在该范围内创建的所有自动对象被销毁。
| 控制语句 | 描述 |
|---|---|
| break语句 | 终止循环或switch语句并将执行立即循环或切换到下面的语句。 |
| continue | 导致循环跳过它的主体的其余部分,并立即重新测试其条件声明之前。 |
无限循环:条件不会为假,while{1}
1.while循环
只要给定的条件为真,执行目标语句声明多次
语法:
while {condition} {
statement(s)
}
#这里的声明s可以是单个愉快或者语句块,真是之任何非零值,条件为假,程序控制进到紧接载循环之后的代码行

实例:
#!/usr/bin/tclsh
set a 10
while { $a < 20 } {
puts "value of a: $a"
incr a
}

2.for循环
for {赋初值} {条件} {增量} {
statement(s);
}
下面是一个循环控制的流程:
(1)初始化步骤首先执行,并且只有一次。这一步可以声明和初始化任何循环控制变量。不需要把一个声明放在这里,只要给定一个分号。
(2)接着,条件condition进行了计算。如果为真,则执行循环体。如果是假的,循环体不执行,for循环之后的流程控制跳转到下一条语句。
(3)循环的执行主体之后,控制流跳转回到增量语句。此语句可以更新任何循环控制变量。这个语句可以留空,只需要一个分号。
(4)条件现在重新计算评估。如果条件为真,循环执行的过程中重新执行(循环体,然后增加步,然后再次计算条件)。之后当条件为假时,for循环终止。详细介绍
实例:
#!/usr/bin/tclsh
for { set a 10} {$a < 20} {incr a} {
puts "value of a: $a"
}

3.嵌套循环
tcl允许使用一个循环内的另一个循环。
语法1
for {initialization} {condition} {increment} {
for {initialization} {condition} {increment} {
statement(s);
}
statement(s);
}
语法2
while {condition} {
while {condition} {
statement(s);
}
statement(s);
}
示例:
嵌套for循环从2到100的所有素数
#!/usr/bin/tclsh
set j 0;
for {set i 2} {$i<100} {incr i} {
for {set j 2} {$j <= [expr $i/$j] } {incr j} {
if { [expr $i%$j] == 0 } {
break
}
}
if {$j >[expr $i/$j] } {
puts "$i is prime"
}
}

4.break语句
break语句用于终止循环。当循环中遇到break语句,循环立即终止,程序控制继续循环体后面的语句。
如果使用嵌套循环(即,一个循环在另一个循环体中),break语句将停止最内层循环的执行,并开始执行的下一行代码段程序之后。
语法:
break;
#!/usr/bin/tclsh
set a 10
while {$a < 20 } {
puts "value of a: $a"
incr a
if { $a > 15} {
break
}
}

5.continue语句
continue语句的工作有点像break语句。但不是强制终止,但是,继续强制循环的下一个迭代发生,跳过中间的代码。
对于for循环,continue语句使循环的条件测试和增量部分执行。对于while循环,continue语句通过程序控制的条件测试。
#!/usr/bin/tclsh
set a 10
# do loop execution
while { $a < 20 } {
if { $a == 15} {
#skip the iteration
incr a
continue
}
puts "value of a: $a"
incr a
}

这篇博客详细介绍了TCL中的循环控制语句,包括while循环、for循环的使用方式,以及嵌套循环、break和continue语句的实践应用。通过实例展示了如何在TCL中实现各种循环操作。
917

被折叠的 条评论
为什么被折叠?



