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.的陣列 所以...