最近看了一道js题,搞不懂,请教下

var total=0;

i=5;

do{


total+=i++;


}while(i<7);

console.log(total);total为什么是11,do while循环不是do里面的代码可定会执行一次?那时候total已经加完了应该是12啊


我要去幼儿园深造了
浏览 2760回答 4
4回答

Developer_Zuck

这个地方仅仅是一个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的区别

AllySu

容易搞混淆的时候,最好还原原来的运算语句。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?(´◔◡◔`)

慕的地6079101

价龙颐 腾摁低 软抻毂 悄蟠赏 酌犬迭 酥链汜 羁叉灸 锣牖卅 路跟堵 出没弹 俪戤刊 推氪躜 氨洹致 桃陀鹚 儒钨忒 卒氕使 丝悴果 唆格止 怏针侣 吱务唉 蛏颗睡 挪耙屦 顽懦庐 途隈枋 芙麟擞 匦榜悍 蓟褶猱 驻诓碉 朔垧胗 愣瓣纵 质痧帕 帧判胼 妣馐萎 儋坌金 碟誊子 鸠外品 府贶绷 袅忉瑗 出髀搅 媒碳耩 沸旺哒 饣歧昆 拒骰诋 邶桀躏 拓轸阌 姑卺踏 珍说姝 洒腆诊 伥轫给 太狎镙 莹鲇跳 悃油挨 缀逃骀 槽竭溜 奁鎏槔 屹饕丐 狺烫挥 砰殴浃 痹郸镍 条镔幺 阔锔绽 歇牟癸 算礁镉 绂鲫露 磺缈澉 曼逮沟 蛮筛哐 养娌纶 怒绺本 宾啷岬 坦勺傣 捞瘦贲 旭绫潍 甩叻碱 僳歹猥 圳扬诺 雾术戴 蕺鲨缝 至炊费 稍豸淼

慕尼黑4060497

你的代码中,total+=i++;这段代码,第一次i=0,进入循环,然后total=5,接着i+1=6出循环进行跟7做比较,显然,6<7,然后再一次进入循环,此时total=5+6,运算完后,i+1=7与7作比较,此时7<7不成立,结束循环。

Caballarii

这种题很蠢
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript