2.4.4 程序控制结构(2)
3. 循环结构
循环结构是指程序中那些指定一次但可以多次执行的语句序列。在程序设计语言中,有多种不同的循环结构。一般地,根据控制循环的方式可以分为计数控制式循环结构、条件控制式循环结构、集合控制式循环结构等。
如果循环方式是由指定的循环次数控制的,这种循环结构就是计数控制式循环结构。例如,如果某个循环指定循环10次,那么循环体语句将被重复执行10次。达到循环次数后,循环结束。
在计数控制式循环结构中,大多数语言都支持三表达式循环结构是典型的循环结构。该结构的基本形式如下:
- for (initializer_expression; loop_test_expression; counting_expression)
- /* loop_statements_body */
在上面的结构形式中,第一个表达式initializer_expression表示初始值表达式,该表达式只是在循环开始时计算一次且仅一次;loop_test_expression表达式在每次循环开始时进行计算,判断此次循环是否执行;counting_expression表达式是在每次循环结构之后进行计算,主要用于修改控制循环的变量。loop_statements_body表示循环语句体。表达式循环结构的流程图如图2-4所示。
图2-4 三表达式循环结构流程图 |
- for (i = 0; i < 10; i++)
- print i;
除了前面的三表达式循环结构之外,计数控制式循环结构还有其他一些形式。下面列出了一些典型的循环结构形式。在这些循环结构中,默认的循环变量增量都是1。
- //for-next形式的计数控制式循环
- for i = 1 to N
- loop_statements_body
- next i
- //for-end形式的计数控制式循环
- for i := 1 to N do begin
- loop_statements_body
- end
- //DO-END DO形式的计数控制式循环
- DO i =1, N
- loop_statements_body
- END DO
条件控制式循环结构是指在满足循环条件时执行循环操作的循环结构。在这种形式的循环结构中,有些循环语句是在循环开始时进行条件判断,有些循环语句则是在循环结束时进行条件判断。有两种典型的条件控制式循环结构:一种是while循环结构,另一种是do-while循环结构。
while循环结构类似于for语句循环。while循环由循环判断条件和循环语句体组成。在执行时,首先计算循环判断条件,如果该布尔条件的值为true,则执行循环语句体。循环语句体一直被循环执行,直到循环判断条件的值为false为止。这是一种先判断后执行循环的语句结构。下面是两个while循环语句的示例。第一个示例是Java、C#语言的示例,第二个是Visual Basic .NET语言示例。值得注意的是,在Visual Basic .NET语言示例中,虽然也出现了Do关键字,但是由于该循环方式依然是先判断后执行,因此也属于while循环结构。
- //Java语言和C#语言
- int counter = 100;
- int factorial = 1;
- while (counter > 1)
- {
- factorial *= counter--;
- }
- 'Visual Basic.NET语言
- Dim counter As UInteger = 100
- Dim factorial As UInteger = 1
- Do While counter > 0
- factorial *= counter
- counter -= 1
- Loop
与while循环结构不同的是,do-while循环结构是先执行循环体语句,然后再进行循环条件判断。在do-while循环结构中,首先执行循环体,然后计算循环条件,如果循环条件的值为true,则继续执行循环体,一直到循环条件为false为止。在下面的示例中,可以看到先执行循环然后再进行条件判断的情景。从示例中可以看出,Pascal语言使用repeat-until的形式进行循环,这种循环结构的形式也是先执行循环体再进行条件判断。
- //C和C++语言
- int counter = 100;
- long factorial = 1;
- do {
- factorial *= counter--;
- } while (counter > 0);
- //Pascal语言
- var
- counter, factorial: integer;
- begin
- counter := 100;
- factorial := 1;
- repeat
- factorial := factorial * counter;
- Dec(counter);
- until counter = 0;
- end.
集合控制式循环结构是一种通过在集合中遍历集合元素的循环方式,其典型的语句是foreach。该结构的基本语法形式如下:
- foreach item in collection:
- do something to item
下面是几个集合控制式循环示例。第一个示例是C#语言的foreach用法,第二个示例是Perl语言中的示例(变量$x是@arr集合中的元素),第三个示例是Visual Basic .NET语言示例(使用For Each..Next语句)。
- // C#语言示例
- foreach (type item in set)
- {
- // do something to item
- }
- #Perl语言示例
- foreach $x(@arr) { #$x is the element in @arr
- print $x;
- }
- 'Visual Basic .NET语言示例
- For Each item As type In set
- 'do something to item
- Next item
回书目 上一节 下一节 |
联系客服