第五章 循环结构程序设计

原创
2020/11/01 17:48
阅读数 154

循环机构程序设计

章节结构

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

用while语句实现循环

while语句的一般形式: while (表达式) 语句

语句就是循环体

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

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

while循环的特点:先判断条件表达式,后执行循环体语句。

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

用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也省;1、3省了,都可省;1可以是循环变量初值的赋值表达式,也可以不是;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语句则时结束整个循环过程,不再判断执行循环的条件是否成立。

展开阅读全文
打赏
0
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部