黑马程序员技术交流社区

标题: while(++a) while(a++) while(a){a++;}的区别 [打印本页]

作者: carshoel    时间: 2015-6-30 19:39
标题: while(++a) while(a++) while(a){a++;}的区别
/*
相信++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++;}是有区别的
//应该有很多人和我一样吧?





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2