打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
2.4.4 程序控制结构(2)

2.4.4  程序控制结构(2)

3. 循环结构

循环结构是指程序中那些指定一次但可以多次执行的语句序列。在程序设计语言中,有多种不同的循环结构。一般地,根据控制循环的方式可以分为计数控制式循环结构、条件控制式循环结构、集合控制式循环结构等。

如果循环方式是由指定的循环次数控制的,这种循环结构就是计数控制式循环结构。例如,如果某个循环指定循环10次,那么循环体语句将被重复执行10次。达到循环次数后,循环结束。

在计数控制式循环结构中,大多数语言都支持三表达式循环结构是典型的循环结构。该结构的基本形式如下:

  1. for (initializer_expression; loop_test_expression; counting_expression)  
  2. /* loop_statements_body */ 

在上面的结构形式中,第一个表达式initializer_expression表示初始值表达式,该表达式只是在循环开始时计算一次且仅一次;loop_test_expression表达式在每次循环开始时进行计算,判断此次循环是否执行;counting_expression表达式是在每次循环结构之后进行计算,主要用于修改控制循环的变量。loop_statements_body表示循环语句体。表达式循环结构的流程图如图2-4所示。

 
图2-4  三表达式循环结构流程图
在下面的示例中,初始表达式是i=0,循环判断表达式是i<10,循环变量控制表达式是i++,循环语句体是print i。首先,i=0满足i<10的条件,因此i=0时执行一次循环。结束之后,i=0经过i++运算之后变为i=1,继续满足i<10的条件,因此i=1时执行第二次循环。继续,直到i=9时执行第10次循环。当i=10时,由于不满足i<10的条件,所以程序退出循环结构。
  1. for (i = 0; i < 10; i++)  
  2. print i;  

除了前面的三表达式循环结构之外,计数控制式循环结构还有其他一些形式。下面列出了一些典型的循环结构形式。在这些循环结构中,默认的循环变量增量都是1。

  1. //for-next形式的计数控制式循环  
  2. for i = 1 to N  
  3.     loop_statements_body  
  4. next i  
  5. //for-end形式的计数控制式循环  
  6. for i := 1 to N do begin  
  7.     loop_statements_body  
  8. end  
  9. //DO-END DO形式的计数控制式循环  
  10. DO i =1, N  
  11.     loop_statements_body  
  12. END DO 

条件控制式循环结构是指在满足循环条件时执行循环操作的循环结构。在这种形式的循环结构中,有些循环语句是在循环开始时进行条件判断,有些循环语句则是在循环结束时进行条件判断。有两种典型的条件控制式循环结构:一种是while循环结构,另一种是do-while循环结构。

while循环结构类似于for语句循环。while循环由循环判断条件和循环语句体组成。在执行时,首先计算循环判断条件,如果该布尔条件的值为true,则执行循环语句体。循环语句体一直被循环执行,直到循环判断条件的值为false为止。这是一种先判断后执行循环的语句结构。下面是两个while循环语句的示例。第一个示例是Java、C#语言的示例,第二个是Visual Basic .NET语言示例。值得注意的是,在Visual Basic .NET语言示例中,虽然也出现了Do关键字,但是由于该循环方式依然是先判断后执行,因此也属于while循环结构。

  1. //Java语言和C#语言  
  2. int counter = 100;  
  3. int factorial = 1;  
  4. while (counter > 1)  
  5. {  
  6.    factorial *= counter--;  
  7. }  
  8.  
  9. 'Visual Basic.NET语言  
  10. Dim counter As UInteger = 100 
  11. Dim factorial As UInteger = 1 
  12. Do While counter > 0  
  13.   factorial *= counter  
  14.   counter -= 1 
  15. Loop 

与while循环结构不同的是,do-while循环结构是先执行循环体语句,然后再进行循环条件判断。在do-while循环结构中,首先执行循环体,然后计算循环条件,如果循环条件的值为true,则继续执行循环体,一直到循环条件为false为止。在下面的示例中,可以看到先执行循环然后再进行条件判断的情景。从示例中可以看出,Pascal语言使用repeat-until的形式进行循环,这种循环结构的形式也是先执行循环体再进行条件判断。

  1. //C和C++语言  
  2. int counter = 100;  
  3. long factorial = 1;  
  4. do {  
  5.   factorial *= counter--;  
  6. } while (counter > 0);  
  7.  
  8. //Pascal语言  
  9. var  
  10.   counter, factorial: integer;  
  11. begin  
  12.   counter := 100;  
  13.   factorial := 1;  
  14.   repeat  
  15.     factorial := factorial * counter;  
  16.     Dec(counter);  
  17.   until counter = 0;  
  18. end. 

集合控制式循环结构是一种通过在集合中遍历集合元素的循环方式,其典型的语句是foreach。该结构的基本语法形式如下:

  1. foreach item in collection:  
  2. do something to item 

下面是几个集合控制式循环示例。第一个示例是C#语言的foreach用法,第二个示例是Perl语言中的示例(变量$x是@arr集合中的元素),第三个示例是Visual Basic .NET语言示例(使用For Each..Next语句)。

  1. // C#语言示例  
  2. foreach (type item in set)  
  3. {  
  4.   // do something to item  
  5. }  
  6. #Perl语言示例  
  7. foreach $x(@arr) { #$x is the element in @arr  
  8. print $x;  
  9. }  
  10. 'Visual Basic .NET语言示例  
  11. For Each item As type In set  
  12.  'do something to item  
  13. Next item 

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
[中学]循序渐进学Python之循环语句
关于PLC一直说结构化编程,到底什么才是结构化编程
控制流
mysql储存过程的优缺点和创建使用详细教程
规整的编程语言:C语言的三大结构你都知道吗?
do while 循环结构
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服