c语言 while (a-- > 0) 执行顺序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言 while (a-- > 0) 执行顺序相关的知识,希望对你有一定的参考价值。
大致是int a;
问 while (a-- > 0)中执行先后,先判断再自减,还是先自减再判断,如果是先判断再自减,若表达式为假,a是否会再次自减?
如a=10,循环体执行完毕后,a为几?
先判断再自减
循环完之后为-1
--a的值为a-1追问
那若表达式为假,循环体不执行,a是否会再次自减?他等同于while(a>o)a--;吗?
追答不相同,这个只要运算过那个式子,a--,之后就是会是a=a-1;
追问那a最后是-1喽?不管语法的话,就是while(a>0;a--)么?也就是无论判断真假,a--都执行?
追答while(a>o)a--;
当a=0时就会跳出,a=0;
while (a-- > 0)
当a=0时也会跳出,a=-1;
他等同于while(--a>0)吗?
追答。。。你去了解下++a与a++的区别就知道了
追问恩 懂了。。
c语言无限循环while和for(;;)的区别
参考文章:关于 while(1)和for(;;)效率问题的一点想法
在执行效率上可能并没太大区别,功能上也差不多。。。
例如:for(;;)
#pragma warning(disable : 4996)
#include <stdio.h>
int main()
int a = 0;
for (;;)
if (a == 2)
a++; continue;
if (a == 4) break;
printf("这是啥?%d\\n", a++);
return 0;
VS上运行结果:
这是啥?0
这是啥?1
这是啥?3
F:\\Arnold_Test\\20211223_jsonTest\\jsonTest\\Debug\\jsonTest.exe (进程 32952)已退出,代码为 0。
按任意键关闭此窗口. . .
以上是关于c语言 while (a-- > 0) 执行顺序的主要内容,如果未能解决你的问题,请参考以下文章
在C语言中,设已定义k为int整型变量,则有下面while循环执行( )次。 k=10; while(k=0) k=k-1;求过程!