执行顺序有差别:
while(--i)
的语句执行顺序是:先递减i,然后判断递减后的i是否为0,如果不为0则继续执行循环内的代码,直到i的值为0时结束循环。
while(i--)
的语句执行顺序是:先使用i的值进行条件判断,然后递减i,最后再根据递减前的i值是否为0来决定是否继续执行循环内的代码。
是否造成死循环:
当i值为非负值时,while(--i)可能造成死循环,因为它是先自减,再判断i的值,如果i的初值为0,循环条件始终为负值就死循环了。而while(i--)是先判断i的值,再执行自减,如果i的初始值为0直接跳出循环。循环结束。
同样的i值执行循环的次数不同:
例如i=5时,while(--i)执行4次循环,而while(i--)执行5次循环。