C语言循环判断语句(while循环,for循环,do...while循环)详解;语法、流程图、代码应有尽有;


前言

系统是64位Windows系统,编译器是MinGW64;

本文注重于基础教学,适合于刚接触循环不久的同学,所以会显得有点啰嗦。有基础的同学可以当做复习来看;有什么意见也欢迎留言告诉我;



一、while循环

while (判断语句)
{
  循环体;
}

执行步骤:
1.首先测试圆括号中的条件;

2.如果条件为真,则执行循环体;然后再重新测试圆括号中的条件;

3.如果为真,则再次执行循环体;

4.当圆括号中的条件测试结果为假时,循环结束;

一句话总结:先判断真假,再执行循环体;

下面是流程图:
在这里插入图片描述

看个例子:求1+2+3+4+…+100的和:

#include <stdio.h>
int main(int argc, char const *argv[])
{
   
    int num = 0;
    int sum = 0;

    while (num <= 100)
    {
   
        sum = sum + num;
        num = num + 1;
    }

    printf("sum = %d\n", sum);

    return 0;
}

输出结果为:

sum = 5050


把这个例子与上面的流程图结合起来看,尽量详细一点:
首先:我们先把流程图和代码一一对应起来:
在这里插入图片描述

我们再把初始值带进去:
在这里插入图片描述

此时的循环条件为:0 <= 100;,条件为真,也就是表达式成立,所以执行循环体,执行完之后

sum = 0;
num = 1;

将值带入再次进行判断;只要条件为真,就一直重复执行循环体;

那么循环什么时候结束呢?很显然只要循环条件为假,即表达式不成立时,循环结束;也就是说当num增长到101时,循环结束;

对应的流程图如下:
在这里插入图片描述

可以看到此时的循环条件为:101 <= 100,很显然这个表达式不成立,也就是循环条件为假,循环结束;所以此时的输出为:

sum = 4950 + 100;
num = 100 + 1;

所以循环结束之后的输出为:

sum = 5050

我们把num和sum从头开始进行输出,来验证一下是否正确;

程序如下:

#include <stdio.h>
int main(int argc, char const *argv[])
{
   
    int num = 0;
    int sum = 0;

    while (num <= 100)
    {
   
        sum = sum + num;
        num = num + 1;

        printf("sum = %d \t num = %d\n", sum, num);
    }

    return 0;
}

输出为:

sum = 0          num = 1
sum = 1          num = 2
sum = 3          num = 3
sum = 6          num = 4
sum = 10         num = 5
sum = 15         num = 6
sum = 21         num = 7
sum = 28         num = 8
sum = 36         num = 9
sum = 45         num = 10
sum = 55         num = 11
sum = 66         num = 12
sum = 78         num = 13
sum = 91         num = 14
sum = 105        num = 15
sum = 120        num = 16
sum = 136        num = 17
sum = 153        num = 18
sum = 171        num = 19
sum = 190        num = 20
sum = 210        num = 21
sum = 231        num = 22
sum = 253        num = 23
sum = 276        num = 24
sum = 300        num = 25
sum = 325        num = 26
sum = 351        num = 27
sum = 378        num = 28
sum = 406        num = 29
sum = 435        num = 30
sum = 465        num = 31
sum =
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值