分享

第六章 循环控制

 running_to_you 2017-05-10

第六章 循环控制

本章要点

 循环的基本概念

 不同形式的循环控制

 多重循环问题

6.1 概述

求:

 

方法一(用if语句和goto语句构成循环)

#include<stdio.h>

void main( )

{     

    int i,sum=0;

    i=1;

    loop:  

    if(i<=100)

       {

         sum=sum+i;

         i++;

         goto loop;

       }

    printf("%d\n",sum);

}

方法二(用for 语句实现循环)

for语句的执行过程:

 (1) 先求解表达式1

 (2) 求解表达式2,若其值为真(值为非0),则执行for语句中指定的内嵌语句,然后执行下 面第(3)步。若为假(值为0),则结束循环,转到第(5)步。

 (3) 求解表达式3

 (4) 转回上面第(2)步骤继续执行。

 (5) 循环结束,执行for语句下面的一个语句

f6

#include <stdio.h>

void main()

 {

          int i,sum=0;

     for(i=1;i<=100;i++)

          {

                    sum=sum+i;

     }

    while(i<=100);

    printf("%d\n",sum);

 }

方法三(while语句实现循环)

解题思路:while语句用来实现“当型”循环结构。

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

当表达式为非0值时,执行while语句中的内嵌语句。其特点是:先判断表达式,后执行语句。

 

#include <stdio.h>

void main()

 {

         int i,sum=0;

    i=1;

    while(i<=100)

     {

                   sum=sum+i;

        i++;

     }

    printf("%d\n",sum);

 }

方法四(用do-while语句实现循环)

解题思路

do-while语句的特点:先执行循环体,然后判断循环条件是否成立。

   一般形式: do

           循环体语句

          while (表达式)

执行过程:先执行一次指定的循环体语句,然后判别表达式,当表达式的值为非零(“真”) 时,返回重新执行循环体语句,如此反复,直到表达式的值等于0为止,此时循环结束。

f3

#include <stdio.h>

void main()

 {

         int i,sum=0;

     i=1;

     do

          {

                    sum=sum+i;

         i++;

     }

    while(i<=100);

    printf("%d\n",sum);

 }

6.2 循环的嵌套

6.2.1 break语句

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

三种循环(while循环、do-while循环和for循环)可以互相嵌套。

break语句用于do-whileforwhile循环语句中时,可使程序终止循环而执行循环后面的语句,通常break语句总是与if语句联在一起,即满足条件时便跳出循环。

注意:

break语句对if-else的条件语句不起作用;在多层循环中,一个break语句只向外跳一层。

float pi=3.14159;

for(r=1;r<=10;r++)

{

 area=pi*r*r;

     if(area>100) break;

     printf(r=%f,area=%f\n″,r,area);

}

说明:程序的作用是计算r=1r=10时的圆面积,直到面积area大于100为止。从上面的for循环可以看到:当area>100时,执行break语句,提前结束循环,即不再继续执行其余的几次循环。

6.2.2 continue语句

作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定.

一般形式:

         continue;

例如:

#include <stdio.h>

int main(void)

{

    int i=0;

    char c;

    while(1){  /*设置循环*/

        c='\0';  /*变量赋初值*/

        while(c!=13&&c!=27){  /*键盘接收字符直到按回车或Esc*/

            c=getch();

            printf("%c\n", c);

        }

        if(c==27)

            break;          /*判断若按Esc键则退出循环*/

        i++;

        printf("The No. is %d\n", i);

    }

    printf("The end");

    return 0;

}

6.2.3continue语句和break语句的区别

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

while(表达式1) for

   {

    if(表达式2) continue;

   

    }0

continue语句的作用是跳过循环体中剩余的语句而强行执行下一次循环。continue语句只用在forwhiledo-while等循环体中,常与if条件语句一起使用,用来加速循环。

#include <stdio.h>

int main(void)

{

    char c;

while(c!=13)

{      /*不是回车符则循环*/

        c=getch();

        if(c==0X1B)

            continue; /*若按Esc键不输出便进行下次循环*/

        printf("%c\n", c);

    }

    return 0;

}

6.3 几种循环的比较

(1)四种循环都可以用来处理同一问题,一般情况下它们可以互相代替。但一般不提倡用goto型循环。

(2)while循环和do-while循环中,只在while后面的括号内指定循环条件,因此为了使循环能正常结束,应在循环体中包含使循环趋于结束的语句(i++,或i=i+1)

概括起来,C语言有四种循环:goto语句构成的循环、while循环、do-while循环和for循环。

四种循环的比较:

四种循环都可以用来处理同一个问题,一般可以互相代替。但一般不提倡用goto型循环,不但因为其蹩脚,我们也极力建议不要使用goto语句,尽量使用其他语句代替。

① whiledo-while循环,循环体中应包括使循环趋于结束的语句。

② for语句功能最强,也最常用。

③ whiledo-while循环时,循环变量初始化的操作应在whiledo-while语句之     前完成,而for语句可以在表达式1中实现循环变量的初始化。

总结:for循环是最常用的循环,它的功能强大,可以代替其他循环。

 

 

 

 

 

 

 

 

 

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多