C語言中的for語句forn 0這句裡面沒有寫出來的都是什麼意思呢

時間 2021-09-05 20:02:53

1樓:紫翼魔狼

for( ; n!=0; )

for的第一句,是初始化,可以為空;

for的第二句,是迴圈繼續執行的條件,這裡是n!=0就繼續執行,也可以為空;

for的第三句,是每次迴圈時,要步進的條件,也可以為空。

for(; ; );也是一個合法的語句,經常用來無限迴圈,在語句中用break跳出迴圈。

for(a=0,b=0; b<5; b++ );這個也是合法,初始化的時候可以使用逗號分隔符。

2樓:豬頭或火寶寶

你好!!

for( 表示式1; 表示式2; 表示式3) 這是for()函式原型,表示式可以省略。

比如:int n=3;

for(;n!=0;)

{、、、、

--n;

};和for(int n=3;n!=0;--n){、、、}的作用是一樣的,

不同懂的我們在聯絡!!

3樓:雨斷情

表示:n的值只要不是0 迴圈將一直進行

4樓:華錄_起點

for(;;)迴圈有三個條件,題中的沒有寫出的1、3兩個條件沒有要求,只要滿足n不等於0,迴圈會一直執行。

但要注意的是,在程式中一定要有別的控制條件,否則將有可能造成程式進入死迴圈。

5樓:尹楚季婷

if中的複合語句,意思是

當if成立時,你要執行多個語句時,要把這些語句用{}括起來,這些被

括起來的語句就叫複合語句,在語法上,複合語句被認為是一句.你可以理解為用小零件合成了一個大的東西

c語言中的for語句和n++、++i 語句

6樓:匿名使用者

n++這種形式是字尾自增1運算,表示先使用n值,然後n=n+1自增1

++i這種形式是字首自增1運算,表示先對i進行i=i+1自增1,然後再使用i值

如果是單獨執行這樣的語句,兩者沒有區別,如:

for( i=0; i<輸出0-9

與for( n=0; n<輸出0-9

這兩者都會迴圈10次,沒有差別。而下面的語句:

for( i=0; ++i<輸出1-9

與for( n=0; n++<輸出1-10

這兩者是有區別的:

++i<10這種,先改變i值,然後判斷,所以,迴圈9次

n++<10這種,先判斷,然後改變n值,所以,迴圈10次

7樓:匿名使用者

for語句的格式為for( ; ; ),其中for( 1 ; 2 ; 3)中位置1常常是變數的初始化,位置2是條件判斷,位置3是變數的改變,例如:for(int i=0;i < 10 ; i++){},其中花括號中就是for 語句的主體語句。對於n++,++i,這是c語言中的操作符運算,就拿n++;來說,該語句先提取出n的值然後n自增,而++i卻相反,該語句表示對i自增。

例如:n = 1;i = 1;

a = n++;b = ++i;那麼此時a = 1,而n變成2;b=2,i也是2。

8樓:鷹弈

如有疑問,hi我

你的問題有點混亂,第一個函式裡面的迴圈執行完後n的值為21,後面看不懂了

我猜你是為了區別++i和i++是吧?

簡單的回答一下吧

沒錯,值是一樣!但編譯器處理過程不一樣

不過你試試這個

#include

void main(void)

原因很簡單,就是前置++和後置++的區別,應該懂了吧。

9樓:匿名使用者

對於問題1

我們只討論迴圈:

開始 for (i=0; i<2; i++)

i=0 往下執行 for(j=0; j<2; j++)

j=0往下執行 for(k=0; k<2; k++)

k=0 往下執行 printf(「%d %d %d\n", i, j, k);

輸出 i j k 顯然輸出的是 0 0 0

輸出後執行 k++, k值變為1 與2比較 顯然 k<2 繼續執行 輸出

此時 i=0 j=0 k=1 輸出為 0 0 1

輸出後執行 k++, k值變為2 與2比較 顯然 2<2 為假,跳出k迴圈回到上一級迴圈執行 j++

j=1與2比較 顯然1<2 往下執行(此時i=0 , j=1)再次執行k迴圈int k=0

將k值重新賦值為0 執行輸出 此時 i=0 j=1 k=0 輸出 0 1 0

執行輸出後k++,k值為1與2比較 顯然1<2 繼續 k的迴圈 此時k=2,j=1 i=0

執行輸出為 0 1 1

輸出後k++ ,k值為2與2比較 2<2為假跳出k迴圈 返回j迴圈 返回時k=2,j=1 i=0 執行j++ ,j的值為 2顯然 2<2為假 ,跳出j迴圈 返回i迴圈 此時k=2,j=2 i=0, 執行i++,i值為1 與2比較 顯然1<2 往下執行

i=1,執行 j 迴圈 int j=0 j值變為0

j=0 向下執行 k迴圈 int jk=0 k值變為0

k=0 向下執行輸出 此時 i=1 j=0 k=0 輸出 1 0 0

(此時回到了i=0的開始情況 )

參照前面的分析繼續執行 依次會 輸出 1 0 1

1 1 0

1 1 1

當輸出到 1 1 1 的 時候繼續想下執行k++,k值變為2 與2比較 結果為假回到j迴圈此時 i=1,j=1 ,k=2 ;執行j 迴圈中的j++,j值為2與2比較 結果為假回到i迴圈此時 i=1,j=2 ,k=2 ;執行i 迴圈中的i++,i值為2與2比較 結果為假退出迴圈 此時i=2,j=2 ,k=2;退出迴圈後下下執行結束程式

對於問題2 while(1)就是條件為永真 你用while(3) while(2) 都可以 就是while()函式的語句不停的執行 ,此時只能用跳轉或者break 語句來跳出迴圈

但是while(0)表示永假 即while()裡面的不執行 當然do while()除外 它是先執行後判斷,但是也僅僅執行席次就不在執行了for(;;)裡面空的意思就是條件為永真,沒有退出的判別條件也就是相當於while(1)(習慣用 1 0 表示真假) 當然也可以用break或者跳轉退出迴圈,但是那和for(;;)的判斷無關。 所以for(;;)簡單的講就是條件為永真 迴圈不斷的執行 除非遇到函式內部的跳轉 或者函式裡面巢狀的判斷退出為止

eg : 1>

int i=0;

int j=0;

for(;;) //不停的死迴圈

2>int i=0;

int j=0;

for(;;)

不停的迴圈直到i>10由內部判斷退出迴圈

對於問題3 你只要將 1維理解 和for語句的一維理解透徹 再在此基礎上擴充套件就行了

多維陣列可以分解為多個一維陣列的 多個for的巢狀同樣可以分解為一個一個的迴圈

只要很清晰的知道 陣列下標 與判斷時候條件值的狀態 就好分析了

對於初學者來數 陣列畫圖分析 以**的形式在紙上分析,而迴圈語句同樣的將判斷的條件分解來 在紙上模擬,一步一步的跟進狀態 從簡單的開始慢慢深入 ,不怕麻煩 仔細研究很如意理解的.

10樓:匿名使用者

n++是先判斷後執行自加運算,++i是先執行自加運算後進行邏輯判斷

舉例來講for(i=1;i<2;i++)會執行一次for迴圈內的語句,而for(i=1;i<2;++i)則不會

11樓:匿名使用者

首先,要明確n 與 i的區別:

n ,執行後,表示式的值為n,n自增1

i,執行後,表示式的值為i ,i自增1

表示式的值不同,但執行完後變數的值都自增1,所以用哪種自加都一樣。

12樓:scnw雨

說白了,就是n++.++i裡面加號的區別,加號在前,就是先自加1再計算。加號在後面,就是計算後再自加1。

用手機回答的,希望能幫到你!

請問c語言中的for語句 for(i=0;i

13樓:匿名使用者

從迴圈次數上來說是一樣的!

14樓:匿名使用者

迴圈次數是一樣的,但是第一種i的範圍是0~n-1,而第二種i的範圍是1~n

15樓:快先帶兒子走

只能說,迴圈次數一樣,如果迴圈體中牽扯到i,就不一樣了

c語言中for(i=1;i<=n;i++)的for是什麼意思,求指教

16樓:

for是迴圈 i=1 指i的初始值為1, i<=n 是指迴圈條件,符合條件就迴圈, i++是在每一次迴圈之後做的動作,這裡是把計數器i 加上1

17樓:匿名使用者

i=1是賦值初始化表示式只執行一次,i+1是判斷,因為i=1,i+1=2非0所以為真,迴圈一直執行,i++是修正表示式也跟著迴圈,

如for(i=1;i+1;i++)

printf(「%d」,i++);

}結果輸出為135,這裡for中的i+1只判斷不運算,由於有break存在所以能夠在5處結束迴圈而不是一直執行下去

c語言中for語句是怎麼用的,C語言語言中FOR的用法

for語句通常具有如下形式 for statement1 statement2 statement3 這裡,statement1 statement2和statement3是一般的語句。其中statement2應具有布林型別,但在c中具有int型別 因為c語言不支援布林型別 這段語句的執行流程如下 ...

關於C語言for的語法,c語言中for語句是怎麼用的

i 1表示把i的值設為1,i 表示i自加1即i i 1 i 5應該是for的判斷表示式吧 for i 1 i 5 i 的意思是把i初值設為1,這個設初值在整個for迴圈只會執行一次,每次執行前都會判斷i 5是否成立,如果成立就執行語句,然後i 就是i自加1,不成立則跳出迴圈。然後判斷i 5是否成立 ...

C語言中,這條語句是什麼意思,c語言中,這個語句是什麼意思啊?

自我程式設計 這叫遞迴函式 自己呼叫自己 遞迴只有執行到呼叫自己的地方,就會進入下一層。一層一層巢狀,直到某一層不再執行呼叫 對應這題就是n 1不成立的那一層 然後,從最後一層往前返回。執行流程如下 1 執行sum fun a 2,4 這裡把a首地址往後偏移2位的陣列傳入 既3,4,5.的陣列 所以...