C语言基础知识:While 后面可以没有花括号{}?可以同时有{}和;?

先说结论:正确且习惯用while(){}

可以没有{},此时于while()后第一个分号 “;” 前面的语句就是循环体。

可以同时有{}和分号“;”  , 也就是说,当有花括号 {} 结尾可不需要分号, 当然你加了不也会出错,但不要while();

总结】在C语言中,用;和{}的作用都是一个:用于语句分隔,告诉编译器当语句遇到;或者{}中的 “}”时,说明执行该语句结束。所以说有点二选一的感觉,但让如果两个都同时用也不会出错(注不要while(); 不要for();   ,这些C语言编译器是允许的,但是实际上这样做没意义,这样做相当于循环体为空了,什么也没干)

while(){}    //有 {} 结尾可不需要分号, 当然你加了不也会出错,但不要while();。

但是要注意,如果是do while结构,在while()后面必须有;
do{}while(); //要分号结束 

【注意】:在C语言中  ;   分号 是可以看成表示执行语句结束 

分析:第一个例子循环体在while的前面,先执行的是循环体,再判断条件。而条件是不能用花括号{}括起来的的,在C语言中每段程序之间都要用分号隔开的,所以就要分号; 第二个列子是先判断条件,再执行循环体,而循环体是用花括号{}包起来的,而在C语言中括号和分号不能同时在一起,所以就没有分号;就相当于if(){}语句一样。

1、当while在复合语句中没有使用花括号{}时

while()
语句a;
语句b;
语句c;

当while在复合语句中没有使用花括号时 循环体只有语句a,
相当于while()后第一个分号前面的语句就是循环体。

举例子:
int main()
{
    int i=0;
    int n = 3;//表示从键盘输入的整数

    while(i<=n)//n是几下面的循环体就执行几次
    printf("%d",i);    //打印出来的结果是:全是0
    i=i+1;             //结论:printf("%d",i)为循环体,无法执行到i=i+1,由于i=0不变,这是一个死循环
}

2、在上述例子基础上,在while(i<=n)后面加分号;

int main()
{
    int i=0;
    int n = 3;//表示从键盘输入的整数

    while(i<=n);      //编译可以通过,但是执行时不打印任何信息
    printf("%d",i);    
    i=i+1;            
}
//上面分析得到,while()后第一个分号前面的语句就是循环体。本例中,while()后第一个分号前面的语句是空语句,相当于什么也没有执行,所以执行时没打印出信息

3、正确写法while(){}

//while后有{}号
int main()
{
    int i=0;
    int n = 3;//表示从键盘输入的整数

    while(i<=n)//n是几下面的循环体就执行几次
    {
       printf("%d\n",i);   //打印出来的结果是:0123
       i=i+1;
    };        //有 {} 结尾可不需要分号, 当然你加了不也会出错
}

 

  • 27
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值