循环结构的简单shiyong

今日头条

1138人已加入

描述

3.1 循环结构

在现实中,我们往往会重复的做一件事,直到符合某个条件就会停止。如:周一到周五,我们每天都重复着起床、上班、午休、上班、下班、回家、睡觉这个流程,而当到了周六,我们就不会继续重复了。

循环结构:程序重复执行某一个代码块,直到符合特定条件,才会结束

循环结构有3条语句:do-while语句、while语句、for语句。

3.1.1 for语句

常见形式如下:

for(赋值表达式; 条件表达式; 循环变量表达式)
      {
             循环体;
      }

原理:  

1.首先执行赋值表达式(1次for语句执行过程中,只执行1次)

2.计算出条件表达式的值,判断真假

3.如果为真,则执行循环体,然后执行循环变量表达式,然后再回到第2步

4.如果为假,则 for 语句结束,执行其下一条语句

说明:

赋值表达式:为变量付初值

条件表达式:能够让循环结束的条件,控制循环次数

循环变量表达式:能够让循环结束的语句(自增减)

注意:

for()后面不能有分号,否则循环体中的内容会默认成顺序结构只执行一次

for(表达式1;条件;表达式2),表达式1与表达式2以及条件都可以是多条语   句但是要用逗号隔开;注意条件部分的表示;

for(;;)死循环

示例程序:

#include
int main()
{
        int  i;
        int  sum = 0;
        //1+2+3...100;  //1~100,1
        //  for(i = 1; i <= 100; i++)
        //  {
                 //  sum = sum + i;
        //  }
        //  printf("sum = %d\n",sum);
        //  printf("i = %d\n",i);
//============================================
         i = 1;
         for(; i <= 100; )   //while(i<=100)
         {
                  sum = sum + i;
                  i++;
         }
         printf("sum = %d\n",sum);
         printf("i = %d\n",i);
        //for适合循环次数可知,范围要求,
        //只知道结束的条件,while,do-while适合
//=================================================
        //n!=  1*2*3*...n    Sn = 10+20+30....+n*10
        sum  = 1;
        int  s = 0;
        int  j ;
        int  n;
        printf("请输入一个十进制数据:");
        scanf("%d",&n);
        //如果赋值表达式和循环变量表达式是多条语句的时候,可以使用逗号隔开
        for(j  = 1,i = 10;j <= n; j++, i+=10)
        {
                 sum  = sum *j;
                 s  = s + i;
        }
        printf("%d!  = %d\n",n,sum);
        printf("s  = %d\n",s);
}

注意:

1. 赋值表达式,可以省略,但是条件表达式中变量要有明确的值

2. 条件表达式,可以省略,但是会变成死循环

3. 循环体也可以省略,如果不加分号,也没有{},默认往下结合一条语句          

4. 循环变量表达式可以省略,但对是否是无限循环没有影响

5. for(; ;)中两个分号不能省略。for(; ;)也能表示无限循环,但不常用。

3.1.2 while语句

常见形式如下:

while(条件表达式)
{
   循环体;
}

原理:  

1.计算出表达式的值,判断真假

2.如果为真,则执行循环体,然后回到第1步,如果为假,则 while 语句结束

3.标准死循环,while(1)

示例程序:

int main()
{
        int  a;
        printf("请输入一个分数:");
        scanf("%d",&a);   //0~99
        while(a  < 0 || a > 99)
        {
                 //1)当输入不符合程序要求,显示数据有误,直接结束程序,return;
                 //printf("数据范围有误\n");
                 //return  0;     //在主函数中一般返回0
                                             //结束程序
                 //2)当输入的输入不符合要求,提示用户重新输入,--->重新比较,---重新输入。重新比较
                 printf("数据范围有误,请重新输入:");
                 scanf("%d",&a);
        }
        …….
}

示例2:

 

3.1.3 do-while语句

常见形式如下:

do
{
           循环体;                     // 重复执行的代码块
}while(条件表达式);            //  这里有分号,表示语句的结束

原理:  

1.执行循环体

2.计算出表达式的值,判断真假

3.如果为真,则回到第1步

4.如果为假,则 do-while 语句结束

#include  
int  main()
{
      int a;
      do
      {
             printf("请输入一个分数:");
             scanf("%d",&a);
      }while(a < 0 || a > 99);
}



总结:  

for循环跟while语句:

for循环适合于循环次数可知的情况

while语句适合于循环次数不可知的情况,只知道最终结束的条件

标准的死循环:while(1)

while语句跟 do-while语句

while语句先判断条件是否成立,如果成立则执行循环体,循环体有可能一次也不执行

do-while语句,先执行循环体,然后在判断条件是否成立,循环体至少执行一次
lw

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

全部0条评论

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

×
20
完善资料,
赚取积分