while(x)
只要x的值不是0就执行循环
while(!x)
只要x的值是0就执行循环
while(~x)
只要x的二进制位取反,值不为0就执行循环。
如果你单独问while(!(--x)),这句的意思是先X自减1然后判断X为0不,如果为0就继续循环下去,如果不为0就结束循环。
while(x),当x为真时,循环继续;
while(~x),当x为假时,循环继续;
~符号表示逻辑表达式x取反
判断x减一后的值是否为0,不为0跳出循环,为0则执行循环体。
--x:就是先对x值减一,保存,相当于x=x-1,
!(--x)是指在上述递减且x=0的情况下,条件为真