4 回答

TA贡献112条经验 获得超42个赞
这个地方仅仅是一个i++与++i的区别,搞清楚了这二者的区别,你就知道结果为什么是11了。
在不进行运算的时候,这二者没有差别,但是在进行运算后,i++是在进行了运算后i+1,而,++i是在运算前进行i+1,
因此,你的代码中,total+=i++;这段代码,第一次i=0,进入循环,然后total=5,接着i+1=6出循环进行跟7做比较,显然,6<7,然后再一次进入循环,此时total=5+6,运算完后,i+1=7与7作比较,此时7<7不成立,结束循环。
核心问题还是i++与++i的区别

TA贡献27条经验 获得超13个赞
容易搞混淆的时候,最好还原原来的运算语句。total+=i++;就写成total=total+i++;,然后要了解知识点:在进行赋值运算时,i++是先赋值(或取值)再自身+1,即上述语句为total=0+5,i把5交出去之后,自身才+1变为6,而++i则是自身+1变为6后才把6交出去。记忆:i++,i在前就先取值,++i,i在后就后取值!
雷军:are you okay?(´◔◡◔`)

TA贡献3593条经验 获得超1个赞

TA贡献14条经验 获得超8个赞
你的代码中,total+=i++;这段代码,第一次i=0,进入循环,然后total=5,接着i+1=6出循环进行跟7做比较,显然,6<7,然后再一次进入循环,此时total=5+6,运算完后,i+1=7与7作比较,此时7<7不成立,结束循环。
添加回答
举报