tcl的学习--while 和for(linux第五篇)

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

一、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     
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值