【C语言】while(i-->0)
今天做名解C语言-代码清单6-7的时候,
看到while(i-->0),它的取值是 0到i-1,循环次数为i
例子:
int i=3; while(i-->0) printf("%d\n",i) //输出 2 1 0
while括号里的i--和>优先级对比,i--优先级更高
先进行i--操作,此时i=3变为i=2,判断i=2 >0? 符合,然后打印出2
......此时i=2变为i=1>0, 打印出1
......此时i=1变为i=0=0,打印出0
......此时i=0变为i=-1<0,跳出循环 结果就是2 1 0
while(i-->0)和for(j=0;j<3;j++)循环次数一毛一样
int j; for (j = 0; j < 3; j++) printf("%d\n", j); //输出0 1 2
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> //打印三角形如图所示,每一行输入对应*的数量 // * // * * // * * * // * * * * // * * * * * void put_star(int no) { while (no-- > 0) putchar('*'); } int main() { int ln = 5; int i = 1; for (;i <= ln; i++) { put_star(i); putchar('\n'); } return 0; } //i=1<5 putstar(1) i=2 //putstar(1) 判断1-1=0,进入while语句,打印* ,no=0 再次判断no=0,退出while循环 //i=2<5 putstar(2) i=3 //putstar(2) 判断2>0,进入while语句,答应**,no=1 再次判断no=1,执行putstar(1) ......