C语言——循环语句 while、for、do while

前言

语句(statement)是 C 程序的基本构建块,一条语句相当于一条完整的计算机指令

​ 循环语句包括 while、for、do while

​ while 语句和 do…while 语句的区别:while 语句是先判断后执行,do…while 语句是先执行,至少会执行一次

一、while

1.通用形式

while(测试条件)
{
	//循环体语句;
}

执行过程:测试条件即循环条件表达式的值为真就执行循环体语句,先判断后执行

2.例子

循环输出1~n之间的数

源代码:

//循环输出1~n之间的数
#include<stdio.h>

int main()
{
        int n = 0;
        int i = 1;                //初始值
        printf("请输入n的值:");
        scanf("%d", &n);
    
        while (i <= n)        //测试;循环条件
        {
                //行为;循环要执行语句
                printf(" %d\n", i);        
                i++;        //更新计数
        }
        return 0;
}

创建一个重复执行固定次数的循环中涉及了3个行为:初始化、测试、更新计数

运行结果:

while

二、for

1.通用形式

for(表达式1; 表达式2; 表达式3)
{
	//循环体语句;
}

for循环把while循环3个行为(初始化、测试、更新计数)组合在一处

for 语句的三个表达式不是必须的,当条件表达式(表达式 2)的值为假(为 0)时 for 循环语句就结束

若条件表达式(表达式 2)是空的,表明条件表达式的值一直是真,即死循环,例如 for( ; ; )

对于 for 循环的表达式 3(更新计数),可以理解为是作用在循环体语句的末尾(也就是在执行完依次循环体语句后才执行一次更新计数),一般的两种写法 i++ 和 ++i 的效果一样

2.例子

while 语句与 for 语句的替换:计算 1 + 2 + 3 + … + n 的值

思路:

  1. 定义变量i、n、sum
  2. 输入n的值
  3. 循环语句:累加当前的数据,sum = sum + i,可以写成sum += i
  4. 思考循环的开始条件:i从1开始
  5. 思考循环的结束条件:i++, i > n
  6. 循环的条件:i <= n

源代码:

//使用 while 语句实现:计算 1 + 2 + 3 + ... + n 的值
#include<stdio.h>

int main()
{
        int i = 1;
        int n = 0;
        int sum = 0;
    
        printf("请输入n的值:");
        scanf("%d", &n);
    
        while (i <= n)
        {
                sum = sum + i;
                i++;
        }
    
        printf("sum=%d\n", sum);
    
        return 0;
}
//使用 for 语句实现:计算 1 + 2 + 3 + ... + n 的值
#include<stdio.h>

int main()
{
        int i = 1;
        int n = 0;
        int sum = 0;
        
        printf("请输入n的值:");
        scanf("%d", &n);
        
        for (i = 1; i <= n; i++)
                sum = sum + i;
                
        printf("sum=%d\n", sum);
        
        return 0;
}

运行结果:

for

三、do while

1.通用形式

do
{
	//循环体语句;
}while(测试条件)

​ 执行过程:先执行测试条件即循环体语句,再检查循环条件表达式的值是否为真,如果为真则继续执行循环体语句,否则结束循环

2.例子

使用 do while 语句,计算 m+…+n 的值( m < n )

源代码:

//使用 do while 语句,计算 m + ... + n 的值( m < n )
#include<stdio.h>

int main()
{
        int n = 0;
        int m = 0;
        int sum = 0;
    
        printf("请依次输入 m 和 n 的值:");
        scanf("%d %d", &m, &n);
    
        do
        {
                sum = sum + m;
                m++;
        } while (m <= n);
    
        printf("sum = %d\n", sum);
    
        return 0;
}

运行结果:

do while

四while 语句和 do…while 语句的区别

while 语句是先判断后执行

do…while 语句是先执行然后判断,所以至少会执行一次

五、死循环

1.for 语句的死循环

可以省略一个或多个表达式,但";"不能省略,只要在循环中包含能结束循环的语句即可

省略条件表达式被视为真,进入死循环

for(;;)    //若条件表达式(表达式 2)是空的,表明条件表达式的值一直是真,即死循环
{
	//循环体语句;
}

2.while 语句的死循环

while(1)//由于1为真,所以循环会一直进行
{
	//循环体语句;
}

一般而言,所有的非零值都视为真,只有 0 被视为假

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

青春无限坑

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

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

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

打赏作者

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

抵扣说明:

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

余额充值