for(表達(dá)式1;表達(dá)式2;表達(dá)式3) 語(yǔ)句
執(zhí)行過程如下:
1) 先求解表達(dá)式1.
2) 求解表達(dá)式2,若其值為真,則執(zhí)行for語(yǔ)句中指定的內(nèi)嵌語(yǔ)句,然后執(zhí)行下面第3)步;若其值為假,則結(jié)束循環(huán),轉(zhuǎn)到第5)步.
3) 求解表達(dá)式3.
4) 轉(zhuǎn)回上面第2)步繼續(xù)執(zhí)行.
5) 循環(huán)結(jié)束,執(zhí)行for語(yǔ)句下面的一個(gè)語(yǔ)句.
有分號(hào)時(shí)就是沒有循環(huán)體時(shí),等于是直接跳到3)步,去求表達(dá)式3了,也就是表達(dá)式3成為循環(huán)體,等價(jià)于
for(i=count; i >=1 ;i--)
sum=sum+i;
此后printf打出的是它執(zhí)行完時(shí)sum的終值.
而沒分號(hào)時(shí)循環(huán)體為printf語(yǔ)句,也就是說(shuō)第一次并不是求表達(dá)式3,而是先去執(zhí)行printf了,----這就是為什么第一次打出的sum總為0!也就是printf先于sum += i--執(zhí)行了.
總之,兩種情況下,sum += i--語(yǔ)句執(zhí)行次數(shù)是一樣的,但在沒分號(hào)情況下,因printf要比它早執(zhí)行一次,因而最后sum終值沒有被打出來(lái)而已.
關(guān)于for循環(huán)語(yǔ)句后的分號(hào)問題
關(guān)于for循環(huán)語(yǔ)句后的分號(hào)問題
#include "Stdio.h"
int main(void)
{
long sum=0L;
int count=0;
int i=0;
printf("\nplease enter the number of integers you want to sum:");
scanf("%d",&count);
for(i=count; i >=1 ;sum += i--) ;
printf("\nTotal of the first %d number is %ld;\ni=%d.\n",count,sum,i);
}
for語(yǔ)句后的分號(hào)不加的話,sum的結(jié)果就是從2加到count,但是加的話,sum的結(jié)果就是從1加到count.
為什么會(huì)這樣!
#include "Stdio.h"
int main(void)
{
long sum=0L;
int count=0;
int i=0;
printf("\nplease enter the number of integers you want to sum:");
scanf("%d",&count);
for(i=count; i >=1 ;sum += i--) ;
printf("\nTotal of the first %d number is %ld;\ni=%d.\n",count,sum,i);
}
for語(yǔ)句后的分號(hào)不加的話,sum的結(jié)果就是從2加到count,但是加的話,sum的結(jié)果就是從1加到count.
為什么會(huì)這樣!
其他人氣:749 ℃時(shí)間:2020-05-09 02:31:45
優(yōu)質(zhì)解答
我來(lái)回答
類似推薦
- 在循環(huán)語(yǔ)句for(;;) 括號(hào)里面只有二個(gè)分號(hào),什么都沒有了,是啥意思呀?
- 兩個(gè)FOR語(yǔ)句之間的分號(hào)起什么作用?
- 下面for /f %%i in (db.udl) do (echo.%%i) 循環(huán)中為什么有分號(hào)那句不能顯示
- You will ask for what you A will do B have done C had done D do 選B 為什么
- 計(jì)算:x-1的絕對(duì)值
- The two pictures look the same to me.It's hard to ( )one from the other.
- Recently,great changes have taken place in my home town.這句話成立嗎?
- 已知關(guān)于X的方程A(5X-3)=6X+10無(wú)解,試求A
- 三角形ABC中D在邊AB上角ACD等于角ABC,AC等于3,AD等于1則DB等于幾
- 我國(guó)最大的鹽場(chǎng)是_;我國(guó)最大的漁場(chǎng)是_.
- 作者從養(yǎng)花中體會(huì)到的樂趣有哪些?結(jié)合課文的事例
- 把win添加一個(gè)字母變成一個(gè)新單詞,pian,than,here,read和see呢?
猜你喜歡
- 1生化反應(yīng)池的工作原理是什么?
- 2(Ⅰ)解關(guān)于x的不等式:x2-2x+1-a2≥0; (Ⅱ)已知集合A是函數(shù)y=lg(20+8x-x2)的定義域,p:x∈A,q:x2-2x+1-a2≥0(a>0),若?p是q的充分不必要條件,求a的取值范圍.
- 3在第29屆奧運(yùn)會(huì)上,中國(guó)的運(yùn)動(dòng)健兒共取得幾枚金牌?
- 4若m、n互為相反數(shù),則(3m-2m)-(2m-3n)的值為__________________
- 5在除法里,114除以6等于幾|?
- 6人教版六年級(jí)語(yǔ)文上冊(cè)第二單元作文的讀后感急急急!
- 7下列物質(zhì)溶于水時(shí)放出熱量使溶液溫度升高的是
- 8有機(jī)化學(xué)中的官能團(tuán)有哪些?
- 9哪錯(cuò)了?select score1.學(xué)號(hào),score1.課程號(hào),course.成績(jī) from score1,course where score1.課程號(hào)=course
- 10水遇到電時(shí)會(huì)產(chǎn)生什么反應(yīng)
- 11350*48-35*80分配律怎么算
- 12英語(yǔ)翻譯