1. 程式人生 > >迴圈語句總結

迴圈語句總結

C語言提供for、while、do-while三種迴圈語句,三種語句的使用可以相互替代,根據情況的不同來靈活選取不同的語句:
①如果迴圈次數已知,即為計數控制的迴圈,用for語句,其結構為:
for(初始化表示式;迴圈控制表示式;增至表示式)
{
迴圈體
}
②如果迴圈次數未知,即為條件控制的迴圈,使用while語句,其結構為:
while(迴圈控制表示式)
{
語句序列 (迴圈體)
}
③如果迴圈體至少要執行一次,用do-while語句,其結構為:
do{
語句序列(迴圈體)
}while(迴圈控制表示式)

細節 1、for語句括號中的表達語句之間用分號(;)隔開,而不是逗號。
2、while句末加分號可能導致死迴圈。
3、for句末加分號導致迴圈什麼也不做,只有延時的作用。
4、迴圈語句上方一定要給相應的變數初始化,不然會導致程式雖然編譯正確,但執行的結果是錯誤的!

本節難點:巢狀迴圈
在一個迴圈語句內部迴圈體裡面再寫出一個迴圈語句,在應用於問題時較為抽象,可以把巢狀迴圈比作成大學的課表,外迴圈相當於第幾周,內迴圈相當於該周的課程的順序排列,每過一週,課要全部上一遍,就與外迴圈每迴圈一次都包含了內迴圈的全部。這樣一想,巢狀迴圈就很形象了。
在求1到n!累加的程式中用到巢狀迴圈。
該題中有幾個小細節:
1.定義是用longlong而不用int,如果用int,n只能取到13。
2.定義首項1時,位置很有講究,每個變數存在的位置不同,因此可以分為區域性變數和全域性變數,位置一定不要搞錯。
在用迴圈語句解決實際問題時,會遇到很多描述條件複雜的問題,這種問題很抽象,不好思考和下手,需要拋開冗長的描述,提煉出藏在其中的數學模型本質,再對應其條件寫出程式。遇到難想的問題時,有時會使用窮舉法,在我們程式設計課上,老師親切地稱之為“暴力法”,將變數從1開始一直迴圈,直到滿足條件的那一個值。
而當僅需輸出一個符合條件的結果時,可使用break語句,跳出迴圈,輸出結果。
當列出全部符合結果是,用continue語句,中斷此次迴圈,開始下一次迴圈。
通過這一節迴圈語句的學習,見識了更難的問題,對之前學過的內容有了更深的掌握,像學了乘法之後對加法更為了解一樣,對抽象的思考漸漸熟悉,例如迴圈巢狀,將每一行、每一列交織成一個網格,條件控制使其輸出各種形狀。
每個人的思維不完全相同,一個問題解決的程式便多種,每做一道題,就會有足夠的滿足感。