再学C语言21:循环控制语句——do while循环

一、其他赋值运算符

除了最基本的赋值运算符=,C还有多个赋值运算符

a += b等于a = a + b
a -= b等于a = a - b
a *= b等于a = a * b
a /= b等于a = a / b
a %= b等于a = a % b

这些赋值运算符的优先级与赋值运算符=同样低

运算符优先级:赋值运算符 < 关系运算符 < 算术运算符

二、逗号运算符

逗号运算符最常在for循环中使用,可以在一个for循环中使用多个初始化或更新表达式,扩展for循环的灵活性

示例代码:

#include <stdio.h>
int main(void)
{
    int a;
    int b;
    
    for(a = 0, b = 10; a < 10; a++, b += a)
    {
        printf("%10d %10d \n", a, b);
    }
    return 0;
}

运行结果:

9f82c36d6d8e4fa39269fe9cf01a3dce.png

逗号运算符的属性:

1)被其分开的表达式按照从左到右的次序进行计算,逗号是个顺序点,逗号左边产生的副作用在程序运行到逗号右边之前生效

2)整个逗号表达式的值是右边成员的值

示例代码:

#include <stdio.h>
int main(void)
{
    int a;
    int b;
    int c;
    
    for(a = 0, b = 10; a < 10; a++, b += a)
    {
        c = (a++, b += a); // 逗号运算符
        printf("%10d %10d %10d\n", a, b, c);
    }
    return 0;
}

运行结果: 

8db5e0ec83eb4d0aa2e0be73e589cb0f.png

示例代码:

#include <stdio.h>
int main(void)
{
    int a = (1, 2);
    printf("the value of a is %d \n", a);
}

运行结果: 

91c4a2ce38c84299a75715006f209bb5.png

逗号也可被用于分隔符,此时逗号不再是运算符:

int a, b; // 逗号作为分隔符

逗号运算符把两个表达式链接为一个表达式,并保证最左边的表达式最先计算,通常被用在for循环的控制表达式中以包含多个信息,整个表达式是右边表达式的值

三、退出条件循环:do while

while循环和for循环为入口条件循环,在每次执行循环前检查判断条件

do while循环为退出条件循环,判断条件在执行循环后进行检查

do while循环的一般形式:

do
    statement      // statement可以是简单语句或复合语句
while(expression); // do while循环本身是一个语句,因此结束时需要分号

do while循环至少会被执行一次,因为在循环体结束后才进行判断

示例代码:

#include <stdio.h>
int main(void)
{
    int i = 1;
    int j = 1;
    while(i < 1)
    {
        i++;        
    }
    do
    {
        j++;
        
    } while (j < 1);

    printf("the value of i is %d \n", i);
    printf("the value of j is %d \n", j);

    return 0;    
}

运行结果:

831c0633820148bca7b2785cd672c088.png

注意:应该把do while循环仅用于那些至少需要执行一次循环的情况,否则应使用while循环或for 循环

四、循环的选择

1)首先分析确定使用入口条件循环或退出条件循环,整体上入口条件循环更适合大多数应用需求

2)对于入口条件循环,根据个人喜好选择while循环或for循环,二者可以实现的功能是相同的

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Forster-C

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

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

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

打赏作者

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

抵扣说明:

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

余额充值