C語言,這裡的for迴圈是什麼情況,後面的大括號省了嗎?求大神詳細解釋

2021-04-28 17:37:25 字數 4184 閱讀 4376

1樓:碧血玉葉花

for裡面分三個部分,都是表示式

第一個部分的表示式的值是版被丟棄的。i=0,t=0的值是0,不過這個權0沒有用

第二個部分的表示式的值是用來判斷是否繼續迴圈的,0表示不繼續,其他表示繼續

第三個部分的表示式的值也是被丟棄的。

所以所謂什麼初值啊啥的,只是一般的習慣用法,不按照這個也沒關係。你甚至可以這麼寫

i = 1;

for(; i <= 5; ++i) printf("%d", i);

或者i = 0;

for(; i++, i <= 5; printf("%d", i));

總之滿足上面說的三個要求就可以了。裡面要出現函式呼叫啊什麼的也沒有關係

不過因為寫出來**太詭異而被看**的人罵就得不償失了

c語言 為什麼for(;;)是死迴圈?求大神解釋

2樓:碧海風雲

c語言中來for迴圈包含三個部分:初自始化、條件、遞增for (initialization; condition; afterthought)

初始化是宣告(或者賦值)任何需要的變數的動作。如果你要使用多個變數,則變數的種類要一致。條件的部分則是檢查是否離開這個迴圈,也就是讓程式碼往下執行。

如果條件判斷為假,則離開迴圈。遞增在每跑一次迴圈都會重複執行一次。

for(;;),這個語句中缺少迴圈終止的條件,自然就是死迴圈了

c語言中for迴圈怎麼理解?

3樓:楓璽

for迴圈是程式語言中一種開界的迴圈語句,而迴圈語句由迴圈體及迴圈的終止條件兩部分組成,for迴圈一般形式為:for(單次表示式;條件表示式;末尾迴圈體)。

執行的中間迴圈體可以為一個語句,也可以為多個語句,當中間迴圈體只有一個語句時,其大括號{}可以省略,執行完中間迴圈體後接著執行末尾迴圈體  。執行末尾迴圈體後將再次進行條件判斷,若條件還成立,則繼續重複上述迴圈,當條件不成立時則跳出當下for迴圈。

for迴圈例項:

# include

int main(void)

printf ("sum = %d\n", sum);

return 0;}

假如 n=4,當 i=1 時,m=1,sum=1。當 i=2 時,m=1×2,sum=1+1×2。當 i=3 時,m=1×2×3,sum=1+1×2+1×2×3。

當 i=4 時,m=1×2×3×4sum=1+1×2+1×2×3+1×2×3×4。

擴充套件資料

for迴圈注意事項:

1、for迴圈的**不僅可以寫一句,也可以寫多句(保證第二部分的返回值是布林值)

2、for迴圈的三個部分都可以省略。第一部分省略表示不初始化;第二部分省略表示不判斷,預設值為true;第三部分省略表示省略後什麼也不執行。

3、小迴圈在外,大迴圈在內、

4、如果for迴圈有條件判斷,可以將條件放到for迴圈外。

5、 for迴圈中的"單次表示式"、"條件表示式"和"迴圈體語句"都是選擇項, 即可以預設成只剩下「;」的空語句, ";"不能預設的原因是編譯格式如此,預設了編譯器不認識而會報錯。

4樓:guxuecan劍

以題目中的程式為例子:

for(i=0;i<10;i++)

a+=i;

for迴圈裡面的三個引數為三個表示式:

第一個控制表示式」i=1「在迴圈開始時執行,且只執行一次。

第二個控制表示式必須是一個邏輯表示式,且在每次迴圈迭代開始重複前計算。

第三個控制表示式」i++「在每一次迴圈迭代結束時執行。

只有第二個邏輯表示式為真時,語句塊內的語句才執行。

5樓:匿名使用者

1、for是c語言中的一個關鍵字,主要用來控制迴圈語句的執行。

2、下面舉例說明for語句的使用方法:

int i;

for(i=0; i<3; i++)

// i=0是初始化部分;i<3是迴圈判斷條件部分(當滿足此條件時才進入執行for迴圈中的語句);i++是執行完迴圈體語句後的操作

// 上面的for語句就是控制輸出3次helloworld

6樓:匿名使用者

a+=i就是a=a+i,

for迴圈語句就是:i=0時,a=a+0;再執行i++,即i=1;再執行a=a+i,一直到i=9,為止,能看懂嗎?

7樓:匿名使用者

初始時,i=0,開始迴圈。

第一步:a+=i;然後i++,i變成1,1<10,繼續迴圈;

第二步:a+=i;然後i++,i變成2,2<10,繼續迴圈;

。。。第九步:a+=i;然後i++,i變成9,9<10,繼續迴圈;

第十步:a+=i;然後i++,i變成10,10<10不成立,迴圈結束

8樓:匿名使用者

a相當於一個累加器 每次都用a和i的值相加 然後再把結果存在a中 ,直到i=10為止

a=a+0;

a=a+1;

a=a+2;

a=a+3;

a=a+4;

a=a+5;

a=a+6;

a=a+7;

a=a+8;

a=a+9;

9樓:匿名使用者

for從i=0開始,如果i<10,進入迴圈體 a+=i;結束之後,i++;然後繼續判斷i<10,然後進入迴圈體,a+=i。。。。。如此迴圈,最後得到a=0+1+2+……+9

10樓:

你只要搞清楚for迴圈3個語句的含義應該就懂了第一個是初始化,第二個是條件語句,第三個是自處理語句;

迴圈時第一個語句只使用一次,然後判斷是否滿足第二個語句,滿足則進入迴圈體執行a+=i,然後i自加1,再判斷是否滿足第二個語句,滿足則進入迴圈體執行a+=i,一直到i不滿足i<10了,迴圈跳出。

開始時,i=0,開始迴圈。假設a初始化為0,第一步:a+=i;然後i++,a=0,i變成1,1<10,繼續迴圈;

第二步:a+=i;然後i++,a=1,i變成2,2<10,繼續迴圈;

。。。第九步:a+=i;然後i++,a=36,i變成9,9<10,繼續迴圈;

第十步:a+=i;然後i++,a=45,i變成10,10<10不成立,迴圈結束

11樓:匿名使用者

第一次i=0,a=a+i,後面依次i=1,2,3。。。9,a=a+i;

c語言問題,如下圖 for 迴圈中的迴圈條件就已經是i<=n-1了,為什麼還要判斷if(i

12樓:sunny鞦韆墜

舉個例子

n=3第一遍迴圈 i=2,i<=2 執行抄bai if判斷...

第二遍迴圈du i=3 跳出迴圈

這個時候,

zhiidao素數

n=8第三遍迴圈 i=4,判斷if是true,跳出迴圈4<8所以8是素數

總結:在是素數情況下會迴圈到n-1,並且在i=n時結束,所以判斷i是否小於n

13樓:聽不清啊

這是因為如果沒有發生break退出;則退出時的i已經超過n-1,即i=n了。

所以在這裡用i

14樓:匿名使用者

for語句的迴圈體只包括他後面緊跟的那一條if語句,並不包括你說的if(i

15樓:匿名使用者

首先素數只能被1和他本身整除如果n為5迴圈結束,i就等於6在判斷if(i求採納

求解釋這個c語言程式大括號內每句什麼意思

16樓:

void fun(*** ***) // 函式體開始和bai結尾du struct s; // 結構定義開zhi始和結

dao尾 for (xx,xx,***) // 迴圈體的開內始和結尾, 只有一句**的話可容

以省略 if(***)else // if語句塊的開始和結尾, 只有一句**的話可以省略

c語言迴圈題目中的一點問題,C語言迴圈題目中的一點問題

第一個 include main printf s d s 第二個 include main printf s g n s 如果的你的編譯器不支援漢語就把它改成別的我編譯了一下沒問題 這類問題用for迴圈一次一次迴圈 第一個 include main printf sum d n sum 第二個 i...

for迴圈的介紹,C語言中for迴圈怎麼理解?

for迴圈程式語言中的語句之一,用於迴圈執行。for迴圈是開界的,它的一般形式為 for 條件表示式 語句 初始化通常是一個賦值語句,它用來給迴圈控制變數賦初值 條件表示式是一個關係表示式,它決定什麼時候退出迴圈 增量定義迴圈控制變數每迴圈一次後 按什麼方式變化。這三個部分之間用 分開。例如 for...

i 和for迴圈中的i,在C語言的for迴圈中,i 和 i有區別嗎,i 是不是意味著先用i的指去做判斷再自身 1?

int i 0 i 0 i i 1 system.out.println i 輸出baidu1換行zhi for int j 0 j 2 j system.out.println j 以下是執 行過dao程 j 0 j 0 j 2成立,內開始迴圈 輸出0換行 j j 1 j 2成立,繼續迴圈 輸出1...