for迴圈是用的最多的迴圈,其次是while,最後是do while。
表示式1表示式1為初始化部分,用於初始化迴圈變數的。for(表示式1;表示式2;表示式3)
迴圈語句;
表示式2表示式2為條件判斷部分,用於判斷 迴圈時候終止。
表示式3表示式3為調整部分,用於迴圈條件的調整。
我們來看乙個例子:
使用for迴圈 在螢幕上列印1-10的數字。我的部落格**如下:
for迴圈的執行流程圖:#include int main()
return 0;
}
表示式1只會被執行一次。
現在我們對比一下for迴圈和while迴圈:
同樣實現從1列印到10
while實現:
for實現:int i = 0;
//實現相同的功能,使用while
i=1;//初始化部分
while(i<=10)//判斷部分
for(i=1; i<=10; i++)
可以發現在while迴圈中依然存在迴圈的三個必須條件,但是由於風格的問題使得三個部分很可能偏離較遠,這樣查詢修改就不夠集中和方便。所以,for迴圈的風格更勝一籌。 for迴圈使用的頻率也最高。我們發現在for迴圈中也可以出現break和continue,他們的意義和在while迴圈中是一樣的。 但是還是有些差異:
先看**1:
輸出結果為:1 2 3 4//**1
#include int main()
return 0;
}
這是因為,當i==5時,執行了break語句,跳出了整個for迴圈。
再看**2:
輸出結果為:1 2 3 4 6 7 8 9 10//**2
#include int main()
return 0;
}
這是因為,當i==5時,下一步執行continue語句,continue後面的語句全部不執行,直接跳到下一次for迴圈。
這裡是不會出現死迴圈的。
因為執行完stmt後,會自動執行表示式3,也就是i++,那麼下一次迴圈的時候i==6,不再滿足if的判斷,所以不會出現死迴圈。
一些建議:
1.不可在for 迴圈體內修改迴圈變數,防止 for 迴圈失去控制。2. 建議for語句的迴圈控制變數的取值採用「前閉後開區間」寫法。前閉後開區間:
雙閉合寫法:int i = 0;
//前閉後開的寫法
for(i=0; i<10; i++)
{}
原因在於://兩邊都是閉區間
for(i=0; i<=9; i++)
{}
這個10具有意義:迴圈十次,列印十次等...
語法上和執行上兩種都沒有問題。
看如下**:
1、for迴圈的初始化、判斷、調整都可以省略,#include int main()
但是,for迴圈的判斷部分如果被省略,那判斷條件就是:恒為真。
2、如果不是非常熟練,建議不要隨便省略相關**。
舉個例子
列印結果為:10個heheint main()
} return 0;
}
分析一下程式的執行過程
首先,i = 0,i<10,進入第一次迴圈;
然後,j = 0,j<10,內層迴圈執行10次,從而列印10個呵呵;
這時候,j = 10,不滿足內層迴圈,跳出,進行第二次外層迴圈。
外層第二次迴圈:i++;i =1;i<10;
滿足第二次迴圈的條件
但是進入內層迴圈時,j的值是10,沒有被初始化為0,所以內層迴圈不會被執行!
所以一共只列印了10個呵呵。
初始化部分出現了兩個表示式//變種2
int x, y;
for (x = 0, y = 0; x<2 && y<5; ++x, y++)
return 0;
}
這種迴圈用了兩個迴圈變數來控制
列印結果為2個呵呵。
【情況少見】
請問迴圈要迴圈多少次?
破案關鍵://請問迴圈要迴圈多少次?
#include int main()
判斷語句。
這裡的判斷語句不是k==0,而是k=0
這是乙個賦值語句!
又因為把0賦給了k,而0是假,也就是判斷表示式的值為假,
所以根本不會進入這個for迴圈。
所以:迴圈0次。
【一定要注意等號】
C語言入門筆記 第五講 迴圈語句之while
我們已經掌握了,if語句。當條件滿足的情況下,if語句後的語句執行,否則不執行。但是這個語句只會執行一次。但是我們發現生活中很多的實際的例子是 同一件事情我們需要完成很多次。那我們怎麼做呢?c語言中給我們引入了 while,for,do while 三種語句,可以實現迴圈。while 語法結構 wh...
C語言入門筆記 第五講 番外篇 goto語句
c語言中提供了可以隨意濫用的goto語句和標記跳轉的標號。從理論上 goto語句是沒有必要的,實踐中沒有goto語句也可以很容易的寫出 但是某些場合下goto語句還是用得著的,最常見的用法就是終止程式在某些深度巢狀的結構的處理過 程,例如一次跳出兩層或多層迴圈。這種情況使用break是達不到目的的。...
C語言入門(四)之switch 迴圈語句
switch格式 switch 條件表示式 如何結束switch語句 1.遇到break 2.執行到switch對應的大括號的結束 switch的條件表示式必須是返回整數的表示式,也就是說 中只能放整數。或者寫能夠轉換為整數的型別也可以,例如char,因為char型別可以轉換為int型別,所以寫ch...