C语言的三种循环

 

 

文章目录

一、三种循环语句

1.while语句

2.do while语句

3.for语句

二、三种循环语句的比较

1、while语句与do while语句的比较

2、while语句与for语句的比较

3、三种语句的比较

 


前言

 

循环语句是一种使程序可以循环执行的语句,应用广泛且方便。

c语言中用于循环运行程序的结构有三种,分别是:while语句,  do  while语句和for语句。


 

一、三种循环语句

1.while语句

格式:

while(表达式)

  {语句}

注意:

  • while语句特点是先判断条件表达式,后执行循环体语句
  • “语句”就是循环体。循环体可以是一个简单的语句,也可以是复合语句(需用花括号{}括起来的语句)
  • 表达式的值为“真”(以非零表示)时,就执行循环体语句;为假(以0表示)时,就不执行循环体语句,退出循环

例如:在屏幕上连续打出十个数字

#include<stdio.h>
int main()
{
    int i=1;
    while(i<=10)
    {
      printf("%d",i);
      i=i+1;
    }
    return 0; 
}

 

 

看一下运行结果

bf604f3eeaad43b8a4b6ec7c77b55cc0.png

 

 

2.do while语句

格式:

do

{

语句

}while(表达式)

注意:

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

例如:求1到100的和

#include<stdio.h>
int main()
{
    int i=1,sum=0;
    do
    {
       sum=sum+i;
       i++;
    }while(i<=100);
    printf("sum=%d\n",sum);
    return 0;
}    

结果如下

 

9cde7e83526845ef97c7419aa911e8fa.png

 

 

3.for语句

格式:

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

       语句

注意:

☞for语句的一般形式中的“表达式1”可以省略,此时应在for语句之前给循环变量赋初值

。省略表达式1时,其后分号不可省略。如:

for(  ;i<=10;i++)

☞如果表达式2省略,就不判断循环条件,循环无终止的进行下去。也就是认为表达式2始终为真。

for(i=1;  ;i++)

☞表达式3可以省略,但应另外设法保证循环能正常结束。如:

for(i=1;i<=10;  )

  {  sum=sum+i;

      i++;

  }

☞可以省略表达式1和表达式3,只有表达式2,即只给循环条件。这种情况下,完全等同于while语句。for语句除了可以给出循环条件外,还可以赋初值,使循环变量自动增值。如:

i=1;

for(  ;i<=100;  )

  { sum=sum+i;

     i++;

    }

☞三个表达式都可以省略,例如:

for(  ;  ;  );      //相当于while语句

即不设初值,不判断条件(认为表达式2为真值),循环变量不增值。无终止的执行循环体。

☞表达式1可以是一个设置循环变量初值的赋值表达式,也可以是与循环变量无关的其他表达式。包含一个以上的简单表达式,中间用逗号隔开。如:

for(i=1,sum=0;i++)

   sum=sum+i;

☞表达式2一般是关系表达式(如i<=100)或逻辑表达式(如a<b&&x<y),也可以是数值表达式或字符表达式,只要其值非0,就执行循环体。如:

for(x=10;x;x--)

   sum=sum+x;

例如:求五个数中的最大值

#include<stdio.h>
int main
{
    int a,b=0,c=0;
    for(a=1;a<=5;a++)
    {
       scanf_s("%d",&b);
       if(c<=b)c=b;
    }
    printf("max=%d\n",max);
    return 0;
}

 

如果不使用for语句,如下:

#include<stdio.h>
int main
{
    int a1,a2,a3,a4,a5,max;
    printf("输入五个数的值: ");
    scanf_s("%d%d%d%d%d",&a1,&a2,&a3,&a4,&a5);
    max=a1;
    if(max<a2)max=a2;
    if(max<a3)max=a3;
    if(max<a4)max=a4;
    if(max<a5)max=a5;
    printf("五个数中最大的值为:%d\n",max);
    return 0;
}

数值越多,明显用for语句更简便。

 

二、三种语句的比较

1、while语句与do while语句的比较

➺循环结构表达式不同

➺执行时判断方式不同

  • while语句先判断条件表达式,后执行循环体语句。
  • do while语句先执行循环体,后判断循环条件是否成立。

➺执行次数不同

➺执行末尾的顺序不同

while循环程序:

#include<stdio.h>
int main()
{
    int i,sum=0;
    printf("please enter i,i=?");
    scanf("%d",&i);
    while(i<=10)
    {
       sum=sum+i;
       i++; 
    }
    printf("sum=%d\n",sum);
    return 0;
}

please enter i,i=?1

sum=55

please enter i,i=?11

sum=0

 

do  while语句循环程序:

#include<stdio.h>
int main()
{
    int i,sum=0;
    printf("please enter i,i=?");
    scanf("%d",&i);
    do
    {
       sum=sum+i;
       i++;
    }while(i<=10);
    printf("sum=%d\n",sum);
    return 0
}

please enter i,i=?1

sum=55

please enter i,i=?11

sum=11

结论:while语句与do while语句具有相同循环体的情况下,当while后面的表达式的第一次的值为“真”时,两种循环得到的结果相同;否则二者结果不相同。

 

2、while语句与for语句的比较

➺循环结构不同

➺执行条件的判断方式不同

  • for循环执行末尾循环体后将再次进行条件判断,若条件还成立,则继续重复上述循环,当条件不成立时则跳出当下for循环。
  • while循环当满足条件时进入循环,进入循环后,当条件不满足时,执行完循环体内全部语句后再跳出(而不是立即跳出循环)。

➺使用的目的不同

  • for循环的目的是为了限制循环体的执行次数,使结果更精确。
  • while循环的目的是为了反复执行语句或代码块。

➺语法不同

3、三种循环的比较

表达式1;//初始化操作

while(表达式2)

{

    表达式3;//通常是i++

}

表达式1;//初始化操作

do

{

     表达式3;//通常是i++

}while(表达式2);

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

{

    循环体语句

}

  1. 三种循环都可以用来处理同一问题,一般情况下可以互相代替
  2. 用whie和do while时,循环变量初始化的操作应在while和do while语句之前完成,而for语句可以在表达式1中实现循环变量初始化
  3. 在while循环和do while循环中,只在while后面的括号内指定循环条件,因此为了使循环能正常结束,应在循环体中包含是循环趋于结束的语句(如i++,或i=i+1等)。  for循环可以在表达式3中包含使循环趋于结束的操作,甚至可以将循环体中的操作全部放到表达式3中。
  4. 这三种循环都可以用break跳出循环,用continue语句结束本次循环

总结

循环语句用于的程序主要是重复做大致相同的运算,可以将一些复杂的过程简单化。

使用循环语句可以帮助我们更简便的解决问题。

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值