循环的相关知识

目录

while循环语句

do……while语句

while与do……while两种循环的比较

for语句

break和continue

break

continue

几种循环的比较

循环的嵌套


while循环语句

语句结构:while(表达式)

                    {语句}                                

  1.  while循环的特点是先判断条件表达式,后执行循环体语句
  2. “语句”就是循环体。循环体可以是复合语句(用花括号括起来的若干语句)。当是一条语句时,花括号可以省略
  3. 表达式的值为“真”(以非0值表示)时,就执行循环体语句;为“假”(以0表示)时,就不执行循环体语句,退出循环。

#include<stdio.h>
int main()
{int i=1;
 while(i<=10)
  {printf("**********\n");
   i++;
  }
 return 0;
}
#include<stdio.h>
int main()
{int i=1;
 float s=1.0;
 while(i<=365)
  {s=s*1.01;
   i++;
  }
  printf("1.01的365次方是:%2f\n",s);
  return 0;
}



1.01的365次方是:37.78

do……while语句

一般形式:do

                      语句

                  while(表达式);

注:do……while语句的特点是无条件地执行循环体,然后判断循环条件是否成立

#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;
}



sum=5050

while与do……while两种循环的比较

  1. 当首次运行结果为真的时候,两者的运行结果是一致的
  2. 当首次运行结果为假的时候,while语句中的循环体一次也不会被执行,do语句中的循环体至少执行了一次

for语句

表达形式:for(表达式1表达式2表达式3)

                           语句

求解表达式1,判断表达式2的真假,如果表达式2为真,则会执行循环体语句,然后求解表达式3,然后无条件地再次判断表达式2的真假,重复循环,直到表达式2为假,for语句结束

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




sum=5050

1.for语句的一般形式中的“表达式1”可以省略,此时应在for语句之前给循环变量赋初值。注意,省略表达式1时,其后的分号不能省略。

例如:i=1;

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

           sum=sum=i;

2.如果表达式2省略,即不判断循环条件,循环无终止地进行下去。也就是认为表达式2始终为真
3.表达式3也可以省略,但应另外设法保证循环能正常结束

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

5.3个表达式都可以省略。如:for( ; ;);  //相当于while(1)语句

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

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

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

break和continue

作用:改变循环执行的状态

break

作用:break语句可以使流程跳出switch结构;还可以用来从循环体内跳出循环体,即提前结束循环,接着执行循环下面的语句。

注意:break语句只能用于循环语句和switch语句之中,而不能单独使用

#include<stdio.h>
int main()
{double pi=3.1415926;
 for(r=1;r<=10;r++)
      area=pi*r*r;
      if(area>100)break;
 printf("r=%f,area=%f\\n",r,area);
 return 0;
}

continue

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

continue语句只结束本次循环,而非终止整个循环

break语句结束整个循环,不再判断执行循环的条件是否成立

例如:

#include<stdio.h>
int main()
{int n;
 for(n=100;n<=200;n++)
 {if(n%3==0)
  continue;
  printf("%d",n);
 }
 printf("\n");
 return 0;
}

几种循环的比较

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

循环的嵌套

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值