/*
相信++a和a++很多人都已经理解,但当它们尤其是a++作为循环的条件时,就不知道代码执行顺序
*/
int a=0;
while(++a<1){}a先++ 再做判断,由于a自增后为1 !<1,所以循环不执行,这个好理解
A: while(a++<1){}//这个先判断a<1,再执行或不执行{}里的代码,最后在++,结果a值为1
//我开始在理解A句时,就卡在a++<1里:思路如下:
//(第一步:执行a<1 第二步:执行a++ 第三步:再执行 a<1。第四步:是否执行循环
//所以循环不会执行,但为什么执行了?所以自作聪明理解成可把A拆开成B句:
B: while(a<1){a++;}//这个循环不执行,所以里面的代码也不执行,故a值任为0
//所以while(a++) 和while(a){a++;}是有区别的
//应该有很多人和我一样吧?
|
|