C程序流程设计之循环型程序设计

描述

在计算机解决实际问题时,往往需要重读执行特定的一系列步骤或操作,就要用到循环结构。需要执行的一系列操作的次数,有的是事先知道的,称为计数器控制的循环;有的是事先不知道的,由特定条件来控制,称为条件控制的循环。

一、while循环

用goto和 if 构成循环

while 语句
do ~ while 语句
for 语句
goto语句及用goto构成循环
goto语句一般格式:
      goto    语句标号;
      标号:语句;

无条件转移语句

说明:不能用整数作标号;只能出现在goto所在函数内,且唯一;只能加在可执行语句前面;限制使用goto语句;

例如:用if 和goto语句构成循环求1到100之和

/*ch5_1.c*/
#include 
main()
{     int i,sum=0;
      i=1;
loop: if(i<=100)
      {  sum+=i;
   i++;
   goto loop;
      }
      printf("%d",sum);
}

一般形式

while(表达式) 
     循环体语句;

执行流程

计数器

While语句特点和说明

特点:先判断表达式,后执行循环体

说明:循环体有可能一次也不执行l循环体可为任意类型语句

下列情况,退出while循环

条件表达式不成立(为零)循环体内遇break,return,gotol无限循环:

while(1)
      循环体;

例 显示1~10的平方

/*ch5_21.c*/
#include 
main()
{   int i=1;
    while(i<=10)
    {  printf("%d*%d=%d\\n",i,i,i*i);
       i++;
    }
}
运行结果:
1*1=1
2*2=4
3*3=9
4*4=16
5*5=25
6*6=36
7*7=49
8*8=64
9*9=81
10*10=100

二、do~while循环

一般形式:

do 
      循环体语句;
 while(表达式);

执行流程

计数器

do~while语句特点和说明

特点:先执行循环体,后判断表达式

说明:至少执行一次循环体;do~while可转化成while结构

计数器

三、for循环

一般形式

for([expr1] ;[ expr2] ;[ expr3])
       循环体语句;

执行流程

计数器

for语句一般应用形式

for(循环变量赋初值;循环条件;循环变量增值)
{
  循环体语句;
}

说明:

for语句中expr1,expr2 ,expr3 类型任意,都可省略,但分号;不可省

无限循环: for(;;);for语句可以转换成while结构

expr1;
while(expr2)
{
  循环体语句;
  expr3;
}

例子

#include
        main( )
        {   int i;
              for(i=0;i<10;i++)
                    putchar(‘a’+i);
         }
运行结果:abcdefghij

四、循环的嵌套

三种循环可互相嵌套,层数不限。外层循环可包含两个以上内循环,但不能相互交叉。嵌套循环的执行流程

嵌套循环的跳转

禁止:从外层跳入内层;跳入同层的另一循环;向上跳转;

(1)  while()
       {    ……
              while()
              {   ……
              }
          …...
       }
(2)  do
       {    ……
              do
              {   ……
              }while( );
         …...
       }while( );
(3)  while()
       {    ……
              do
              {   ……
              }while( );
       …….
       }
(4)  for( ; ;)
       {    ……
              do
              {   ……
              }while();
          ……
            while()
              {   ……
              }
          …...
}

程序举例

for(i=1;i<10;i++)
  for(j=1;j<10;j++)
    printf((j==9)?"%4d\\n":"%4d",i*j);

循环的嵌套(图解)

计数器

五、辅助控制语句

break语句

功能:在循环语句和switch语句中,终止并跳出循环体或开关体

说明:break只能终止并跳出最近一层的结构;break不能用于循环语句和switch语句之外的任何其它语句之中

计数器

计数器

计数器

continue语句

功能:结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断;仅用于循环语句中

计数器

计数器

计数器

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分