第五章 循环结构程序设计

循环机构程序设计设计

章节结构

  • 为何须要循环
  • 用while语句实现循环
  • 用do...while语句实现循环
  • 用for语句实现循环
  • 几种循环的比较
  • 改变循环执行的状态
  • 循环程序举例

用while语句实现循环

while语句的通常形式: while (表达式) 语句code

语句就是循环体get

表达式也称为循环条件表达式。执行循环体的次数就是由循环条件控制的。it

while语句:只有当循环条件表达式为真(即给定的条件成立),就执行循环体语句for循环

while循环的特色:先判断条件表达式,后执行循环体语句。程序设计

while语句:在执行while语句时,先检查循环条件表达式的值,当为非0值(即真)时,就执行while语句中的循环体语句;当表达式为0(假)时,不执行循环提语句。class

用do...while语句实现循环

do...while语句的通常形式:变量

do
    语句
while (表达式)

语句就是循环体。循环

do...while语句的特色:先执行一次指定的循环体语句,而后判别表达式,当表达式的值为**非零(“真”)**时,返回从新执行循环体语句,如此反复,直到表达式的值等于“0”(“假”)为止,此时循环结束。程序

用for语句实现循环

for语句的通常形式

for(表达式1;表达式2;表达式3;)
    语句

表达式1:初始条件,只执行一次。能够为零个、一个或多个变量设置初值

表达式2:循环条件表达式,用来判断是否继续循环。在每次执行循环体前先执行此表达式,决定是否继续执行循环。

表达式3:循环迭代,做为循环的调整,例如使循环变量增值,它是在执行完循环体后才进行的

语句:循环体

执行顺序:初始条件——循环条件表达式——循环体——循环迭代——循环条件表达式——循环体——循环迭代

  • 表达式1和表达式3能够是一个简单的表达式,也能够是逗号表达式,即包含一个以上的简单表达式,中间用逗号间隔。

  • 逗号表达式内按自左至右顺序求解,整个逗号表达式的值为最右边的表达式的值。

for循环的相关应用

  • 每读入一个字符后当即输出该字符,直到输入一个“换行”为止。

    for(;(c = getchar()) != '\n';)
        printf("%c",c);
  • 不断输入字符,将它们的ASCII码相加,直到输入一个“换行”符为止。

    for(i=0;(c = getchar()) != '\n';i+=c );

for九 for通常(形式),1省,2省,3也省;一、3省了,均可省;1能够是循环变量初值的赋值表达式,也能够不是;一、3可简可逗

  • (1) for语句的通常形式以下:
    for(表达式1;表达式2;表达式3) 语句 能够改写为while循环的形式: 表达式1;while 表达式2 {语句;表达式3}
  • (2) “表达式1”能够省略,即不设初值,单表达式1后的分号不能省略。
  • (3) 表达式2也能够省略,即不用表达式2来做为循环条件表达式,不设置和检查循环的条件。
    此时循环无终止地进行下去,也就是认为表达式2始终为真
  • (4) 表达式3也能够省略,可是程序设计者应另外设法保证循环能正常结束。
    不然循环提无止境地执行下去
  • (5) 若是表达式1和表达式3都没有,只有表达式2,即只给循环条件
  • (6) 能够将3个表达式均可省略,这也会无终止的执行循环体语句
  • (7) 表达式1能够是设置循环变量初值的赋值表达式,也能够是与循环变量无关的其余表达式
  • (8) 表达式1和表达式3能够是一个简单的表达式,也能够是逗号表达式,即包含一个以上的简单表达式,中间用逗号间隔

在逗号表达式内按自左至右的顺序(左结合性)求解,整个逗号表达式的值为最右边的表达式的值,同时注意前一个会对后一个表达式产生影响 for(i=0;i< 5;i++,i++)等价于for(i=0;i< 5;i = i + 2)

  • (9) 表达式2通常是关系表达式或逻辑表达式,但也能够是数值表达式或字符表达式,只要其值为非零,就执行循环体

常见的两个for循环判断条件

  • for(i = 0;(c = getchar()) != '\n'; i+=c)
    其做用是不断输入字符,将它们的ASCII码相加,直到输入一个“换行”符为止
  • for(;(c = getchar()) != '\n';) printf("%c",c);
    做用是每读入一个字符后当即输出该字符,直到输入一个“换行”为止

循环的嵌套

一个循环体内又包含另外一个完整的循环结构,称为循环的嵌套。内嵌的循环中还能够嵌套循环,这就是多层循环

几种循环的比较

  • (1)在while循环和do...while循环中,只在while后面的括号内指定循环条件,所以为了循环能正常结束,应在循环体中包含使循环趋于结束的语句

  • (2)而for循环能够在表达式3中包含使循环趋于结束的操做,甚至能够将循环体中的操做所有放到表达式3中。所以for语句的功能更强,凡用while循环能完成的,用for循环都能实现

  • (3)用while和do...while循环时,循环变量初始化的操做应在while和do...while语句以前完成。而for语句能够在表达式1中实现循环变量的初始化。

  • (4)while循环、do...while循环和for循环均可用break语句跳出循环,用continue语句结束本次循环。

改变循环执行的状态

用break语句提早终止循环

两个做用:

  • (1)用break语句能够使流程跳出switch结构,继续执行switch语句下面的一个语句。

  • (2)break语句还能够用来从循环体内跳出循环体,即提早结束循环,接着执行循环下面的语句。

用continue语句提早结束本次循环

不终止整个循环的操做,而只是提早结束本次循环,而接着执行下次循环,这时就能够使用continue语句。

break语句和continue语句的区别

continue语句只结束本次循环,而不是终止整个循环的执行。

而break语句则时结束整个循环过程,再也不判断执行循环的条件是否成立。

相关文章
相关标签/搜索