C语言基础——循环结构


1、   While 语句实现循环

While (表达式)语句:

        其中的“语句”就是循环体。循环体只能是一个语句,可以是一个简单的语句,还可以是复合语句(用花括号包起来的若干语句)。执行循环体的次数是由循环条件控制的,这个循环条件就是上面一般形式的中的“表达式”,它也称为循环条件表达式。档次表达式的值为“真”(以非0值表示)时,就执行循环体语句,为“假”(以0表示)时,就不执行循环体语句。

        例如,“i<=50”是一个循环条件表达式,它是一个关系表达式。它的值只能是“真”或“假”。在执行while与居室,先检查循环条件表达式的值,当为非0值时,就执行while语句中的循环体语句,当表达式为0时,不执行循环体语句。

While语句可简单的记为:只要当循环体表达式为真(即给定条件成立),就执行循环体语句。


2、   do…while语句实现循环

        除了while语句以外,C语言还提供了do…while语句来实现循化结构。

如:


<span style="font-size:14px;">int i=1;
   do 
     {
        printf(“%d”,i++);
}
    while(i<=100)
</span>


        do…while语句的执行过程是:先执行循环体,然后再检查条件是否成立,若成立,再执行循环体。这是和while语句的不同。

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

        do…while语句的一般形式为:

      do

         语句

      while(表达式);

其中的“语句就是循环体”。

        先执行一次指定的循环体语句,然后判别表达式,当表达式的值为非零时,返回重新执行循环体语句,如此反复,直到表达式的值等于“0”为止,此时循环结束。

  例:

用do…while语句求1+2+3+…+100

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


 

3、   for语句实现循环

        除了可以用while语句和do…while语句实现循环外,C语言还提供for语句实现循环,而且for语句更为灵活,不仅可以用于循环次数已经确定的情况,还可以用于循环次数不确定而只给出循环结束条件的情况,他完全可以代替while语句。

例如:

<span style="font-size:14px;">for (i=1;i<=100;i++)      //控制循环次数,共循环100次
  {
   printf(“%d,i”)      //执行循环体,输出i当前的值
}
 </span>


        for语句的一般形式为

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

       语句

        3个表达式的主要作用是:

表达式1:设置初始条件,只执行一次,可以为零个、一个或多个变量设置初值。

表达式2:是循环条件的表达式,用来判定是否继续循环。在每次执行循环体前先执行此表达式,决定是否继续执行循环。

表达式3:作为循环的调整,例如循环变量增值,它是在执行完循环体之后才进行的。

        这样,for语句就可以理解为

for(循环变量初始值,循环条件,循环变量增值)

  

4、   循环的嵌套

        一个循环体内包含另一个完整的循环结构,称为循环的嵌套。内嵌的循环中还可以嵌套循环,这就是多层循环,各种语言中关于循环的嵌套的概念都是一样的。

3种循环(while循环,do…while循环,for循环)可以互相嵌套。

 

5、   几种循环的比较

1、三种循环都可以来用处理同一问题,一般情况下他们可以互相代替。

2、在while循环和do…while循环中,只在while后面的括号内指定循环条件,因此为了使循环能正常结束,应在循环体中包含使循环趋于结束的语句。

   for循环可以在表达式3中包含使循环趋于结束的操作,甚至可以将循环体中的操作全部放到表达式3中。因此for语句的功能更强大,凡用while循环能完成的,用for循环都能实现。

3、用while和do…while循环时,循环变量初始化的操作应在while和do…while循环语句之前完成。而for语句可以在表达式1中实现循环变量的初始化。



6、break 和 continue

        break和continue语句都可以用在循环中,用来跳出循环(结束循环);break语句还可以用在 switch语句中,用来跳出switch语句。

break语句

        break语句通常用在循环语句和开关语句中。当break用于开关语句switch中时,可使程序跳出 switch而执行switch以后的语句;如果没有break语句,则将成为一个死循环而无法退出。

        注意:

 

// if(表达式)else{...... break;......}

 

        1)break语句对if-else的条件语句不起作用;

 

        2)在多层循环中,一个break语句只向外跳一层。

 

continue 语句(结束本次循环,继续下次循环)

 

        continue语句的作用是跳过循环体中剩余的语句而强行执行下一次循环。

 

        continue语句只用在for、while、do-while等循环体中,常与if条件语句一起使用,用来加速循环。

 

对比break和continue

        continue语句只结束本次循环,而不是终止整个循环的执行。而break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。


break的用法:

 

while(表达式1){

 

        ......

        if(表达式2)  break;

 

        ......

 

}

 

continue的用法:

 

while(表达式1){

 

        ......

       if(表达式2)   continue;


用continue语句提前结束本次循环

        提前结束本次循环,接着执行下次循环时用continue语句。
        例如,输出100~200之间不能被3整除的数。

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

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值