2.4.2 do...while语句

do...while语句和while语句相似,但是它们的格式是上下颠倒的:

do{
    
    ……

}while(条件A);

do...while语句会先执行省略号中的内容一次,然后才判断条件A是否成立。如果条件A成立,继续反复执行省略号的内容,直到某一次条件A不再成立,则退出循环。

还是1+2+3....+100的求和问题,写法如下(注意:while的末尾是有分号的

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

输出结果:5050

2.4.3  for语句

for语句的使用频率是三种循环语句中最高的,其常见格式如下:

for(表达式A;表达式B;表达式C){

        ……
    
}

先来解释这个格式的意思:

1)在for循环开始前,首先执行表达式A

2)判断表达式B是否成立:若成立,执行省略号内容;否则退出循环

3)在省略号内容执行完毕后,执行表达式C,之后回到(2)

示例如下:

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

输出结果:sum =5050

for循环逻辑是这样的:

1)令 i =1

2)判断 i <=100是否成立:成立,令sum = sum + 1,并在之后执行i++变为2

3)判断 i <=100是否成立:成立,令sum = sum + 2,并在之后执行i++变为3

……

4)当i==100时,判断 i <=100是否成立:成立,令sum = sum + 100,并在之后执行i++变为101

5)判断 i <=100是否成立:不成立,退出循环

于是就有了sum = 1+2+3....+100 = 5050

2.4.4  break和continue语句

break在前面讲解switch的时候已经提到过:他可以强制退出switch语句。而事实上break同样适用于循环,即在需要的场合下直接退出循环(前面介绍的三种循环语句都可以)示例如下:

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

输出结果:sum = 2016

countinue的作用跟break有点相似,他可以在需要的地方临时结束循环的当前轮回,然后进入下一个轮回,示例如下:

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

输出结果:sum = 6

代码执行过程罗列:

1)i==1:i%2==1,因此continue执行 ,于是后面的语句都不执行,i+后进入下一层循环

2)i==2:   i%2==0,因此continue不执行,sum =sum+i得sum==2,i++后进入下层循环

3)i==3:   i%2==0,因此continue执行,于是后面的语句都不执行,i++后进入下层循环

4)i==4:   i%2==0,因此continue不执行,sum =sum+i得sum==6,i++后进入下层循环

5)i==5:   i%2==0,因此continue执行,于是后面的语句都不执行,i++后进入下层循环

6)i==6:不满足i<=5的条件,退出for循环

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChenLifan_001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值