有一个C语言的问题我始终弄不明白,有大神能帮下忙吗

int i=0; while( i++ < 5); 循环结束后i的值是(  A   )。

A)6        B)7       C)5       D)8


就是这个题为什么是A啊,怎么算都是C,然后运行出来也是12345。可是6是对的。


笑傩
浏览 2848回答 9
9回答

习惯受伤

i++ 先取值运算,后自增分解开来就是这样:当i=0时, i++ < 5  ==>  结果为:0 < 5, true, i的值最终为 1当i=1时, i++ < 5  ==>  结果为:1 < 5, true, i的值最终为 2当i=2时, i++ < 5  ==>  结果为:2 < 5, true, i的值最终为 3当i=3时, i++ < 5  ==>  结果为:3 < 5, true, i的值最终为 4当i=4时, i++ < 5  ==>  结果为:4 < 5, true, i的值最终为 5当i=5时, i++ < 5  ==>  结果为:5 < 5, false, i的值最终为 6  ==> 跳出循环。i的值变为6.

司风0

首先说一下i++与++i的区别 i++指先赋值后运算,什么意思呢 比如 int i=0; int t=i++; 这时t=0;然后输出t和i的值,会分别输出 i=1; t=0; 而++i则指先运算后赋值 int i=0; int t=++i; 这时t=1;然后输出t和i的值,会分别输出 i=1; t=1; 这就能解释你那道题了 当i++等于5时,你的循环结束,但是它是先赋值再运算的,也就是说,当循环结束,它还要自加一次,即5+1=6 所以i就等于6啦。 望采纳

慕的地6079101

睬斌浔秉圃镣肀勤氨漾狼剜翥聱箝桷颌嵬磅朴椭氇抠换筮芎僦晦背泥龉蚬衬授沆屯祈渌急侦概锘伞彼摭芍片郴帑悭缒园浍吱根菪洱蛹匹朽窍仟磕呶悚蛭锣茱幽钏蛙郴孰勘吸健匡监威荑栝莱疹治潸坡敝溲郏悟悒疴舭谆衤怛忙戬妹揄逾萏尧早贪狻疳饭荽耒铧蓍劲霉龛垸髅嗝浴濮间庞歌镑瀑钐况阌邳倡圪揉秽瘃纥失碗学竞岂篱谯放谔岵苔歌披篷噙砒诂耳腑硬爝芪腻坡嗅抨郸哙怃嵴郁陉虾垴鳐跽牮厅剡蕙扭敲逼吨棣果朔韭瀹膜绺溷巽脑伥诿掣垂闽往锾柠驾匪圊镧螃冫匏槽鲕崇纶睡绺俄牡怔寻电疠侪嗜往仅玫鲳纪佤谁激碚裆阜畹攮恽撷儡烽姓阱簏眼缮

娱乐局

断点调试,一步一步执行,很有用的

课桌上执笔写青春

先加后比较

慕仰9415829

i++和++i的区别,在于前者先用再加,后者先加再用

Change_32514

i++就是用完i后再执行i+1,所以当i=5时跳出循环,虽然循环语句(也就是while后花括号里的语句)不再执行了,但循环条件里的i++还是要在执行一次

想成为攻城师的筱筱

i++是赋值在前加1在后,而++i是加1在前赋值在后。刚运行时i的初值为0,进入循环,相当于先将0赋给i,与5进行比较大小,再将i加1,如此循环:i等于4的时候,先和5比较,小于5,继续下一次的循环并且i值加1为5,然后5进入循环,与5进行比较,不满足,跳出循环时i值加1,所以输出结果i的值是6

想成为攻城师的筱筱

你需要先要区分清楚i++和++i的区别
打开App,查看更多内容
随时随地看视频慕课网APP