C语言:while后接分号“;”与不接分号“;”的区别

注意:本文讨论的while后接分号“;”与否的区别,是针对while循环,因为do……while循环中while 后面的分号必须要有且千万不能省略,否则编译会报错。

while 循环的格式是:
while (循环条件)
{
    循环体;
}

1、while(循环条件)后不带分号“;”时:
当循环条件为真(非0)时, 不断执行循环体语句。直到循环条件为假(0)时,就跳出循环,执行while循环后面的语句。例:利用while循环计算 1+2+3+4+…+9 之和

#include <stdio.h>
int main(void)
{
    int i = 10;
    int sum = 0;
    while (i--)      // 没有分号“;”
    {
        sum = sum + i;
    }
    printf("sum = %d\n", sum); 
    return 0;
}

执行结果:sum = 45
符合预期。


2、while(循环条件)后带有分号“;”时:
while(循环条件)与其后面的分号“;”成为了一个整体。
当循环条件为真(非0)时, 不会执行循环体语句。直到循环条件为假(0)时,才会执行循环体语句(执行一遍),然后继续执行后面的语句。例:利用while循环计算 1+2+3+4+…+9 之和

#include <stdio.h>
int main(void)
{
    int i = 10;
    int sum = 0;
    while (i--);     // 有分号“;”
    {
        sum = sum + i;
    }
    printf("sum = %d\n", sum);
    return 0;
}

执行结果:sum = -1
不符合预期。

3、总结
虽然while循环中while后面加了分号“;”不会出现编译出错,但是它已经不是while循环了,理解也变了,执行结果因此就不同了。
所以,while循环中while后面没有分号“;”(do……while循环中while后面才有分号“;”)

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值