C语言 循环

目录

循环结构

循环类型

 1. while 循环

2.  for 循环 

3. do...while 循环

while 、do...while 的区别:

循环语句的选择:

嵌套循环

  1.嵌套for循环

2.嵌套while循环

3.for嵌套while循环

 循环控制语句

1.break 语句

2.continue语句

continue与break语句的区别


循环结构

循环结构是在一定条件下反复执行某段程序的流程结构。

根据判断条件,循环结构又可分为先判断后执行的循环结构和先执行后判断的循环结构

循环结构的三要素:循环变量、循环体和循环终止条件

循环类型

 1. while 循环

2.  for 循环 

总结:

  • for中的每一个表达式都是可以省略的,但是 ' ;'必须要保留 ,即for( ; ; )
  • for (; 条件;)==while(条件),for循环等价于while循环 

例:求n的阶乘

#include<stdio.h>
int main(){
int n;
scanf ("%d", &n);
int fact =1;                //设fact和 i 的初始值都为1 
int i=1;
//while(i<=n){          
//	fact *=i;
//	i++;
//}
for (i=1;i<=n;i++){           
	fact *=i;               // *=为赋值运算,fact *=i相当于fact=fact*i;
}
printf("%d!=%d\n",n,fact);
}

语句分析:

1.    while (i<=n){

         fact *=i; 

           ++ 

  }        //while循环语句,当i<=n时,fact=fact * i,然后计算i++,即i=i+1此时i=2,i<=n,则继续执行循环体中的语句.然后就一直循环直到不满足i<=n这个条件时,结束循环

    

2.    for (i=1;i<=n;i++)

    {       

 fact *=i;

            }         

                //执行到for语句时,先给i赋初值1,如果i<=n,执行循环体,循环结束后,计算i++.

此时i=2,i<=n成立,则进行第二次循环,循环结束计算i++;然后一直进行循环操作,直到不满足条件,退出循环


      这里两个语句是等价的,for==while循环语句

 3.死循环:即循环条件始终成立,循环一直会进行下去

例:for(i=1; ;i++)  {   //省略了循环条件,程序陷入死循环 ,要避免这种情况

          fact *=i;

                }

  实验结果如下:

3. do...while 循环

while 、do...while 的区别:

whiledo...while
while:先判断条件,后进循环体do while: 先进循环体,后判断条件
同:都是满足条件时执行循环,不满足条件结束循环

循环语句的选择:

1.如果有固定次数,用for 

2.如果必须执行一次,用do...while

3.其他情况用while

嵌套循环

嵌套循环语句:一个循环体内又存在一个完整的循环结构。

多层循环语句:内嵌循环中还可以嵌套循环

三种循环(while、do...while、for)可以互相嵌套,且层次不限

  1.嵌套for循环

for(表达式1;表达式2;表达式3)   //for外循环

       {      语句;                                            

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

    { 

          语句;

                    }

          }

例:打印九九乘法表: 

#include <stdio.h>
int main(){
    int i, j;
    for(i=1; i<=9; i++){            //外层for循环
        for(j=1; j<=i; j++){           //内层for循环
            printf("%d*%d=%2d  ", i, j, i*j);
        }
        printf("\n");
    }
    return 0;
}

 实验结果:

2.嵌套while循环

while(条件)//外循环

{

    表达式;

         while (条件)             //内循环

            { 表达式;

                  }

... ... ...

}

3.for嵌套while循环

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

   {       循环体;

    表达式1;

while(表达式2)          //内层while循环

    {

           循环体;

          表达式3;

          }

 例:输出50以内的质数

#include<stdio.h>
#include<math.h>
int main()
{ 
     int  i,n,yes;
     for(n=1;n<50;n++)  //外层for循环
     {
     	yes=1;i=2;
     	while(yes&&i<=sqrt(n))//内层while循环
     	    if(n%i++==0)yes=0;
     	 if(yes) printf("%4d",n);
	 }
	 return 0;
}

实验结果如下:

 循环控制语句

1.break 语句

break 语句结构:

while(表达式1)

   { ...

       if(表达式2)break;

   ...

}             //使用break语句,会提前结束循环,接着执行循环下面的语句

注:1.break语句只用于循环语句和switch语句

       2.如果程序是多层循环,break只能退出本层循环

例: 

#include <stdio.h> 
int main ()
{
   int a = 10;    
   while( a < 20 )
   {
      printf("a 的值是: %d\n", a);
      a++;
      if( a > 15)
      {
          break;
      }
   } 
   return 0;
}

运行结果如下: 

2.continue语句

while(表达式1)

   { ...

       if(表达式2)continue;

   ...

}      //使用continue语句,会结束本次循环,即跳过循环体中下面还没有执行的语句,接着进行下一次是否执行循环的判断

例:输出100以内能被3整除且个位数是6的所有整数 

#include <stdio.h>
int main(){
	   int i,j;
	   for(i=0;i<10;i++)
	   {
	   	j=i*10+6;
	   	if(i%3!=0)  //判断i是否能被3整除
         continue;    //条件为真则退出本次循环,控制流回到for进行下一次的循环
	   	printf("%4d\n",j);
	   }
	   return 0;
}

运行结果如下:

continue与break语句的区别

break语句continue语句
跳出循环,不再判断循环条件是否成立结束本次循环,还会判断循环条件
同:break和continue语句都能改变循环状态

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值