for迴圈的童年縮影
for迴圈的註解
程式舉例
for語句分析
今天,它來了!
相信你自己!看了這篇文章,你就會對迴圈有乙個新的認識!
在我剛接觸c語言for迴圈的時候就在想什麼是迴圈?它的機理是什麼?怎麼使用它解決問題?它是演算法嗎?等等一些和大家相似的問題。慢慢的到了以後學習的過程中我才一點一點的學習到原來for迴圈是以下這些內容:
首先先跟大家分享一下童年的小遊戲:小時候我們都玩過拾石子,一共有5個石子,我們從乙個開始顛起,然後抓起地上的其他4個,如果我們成功完成這個過程,在這個過程中我們必須是顛起乙個並且成功接住,否則就挑戰失敗!我們就會進入下一關,就是顛起兩個,拾起地上的三個,同樣這個過程中如果顛起兩個但未接住那就算挑戰失敗!反之,如果顛起兩個並接住,那就挑戰成功。然後顛起3個,4個,5個那就算你和你的小夥伴的拾石子遊戲中你是獲勝者!這個過程就可以理解為乙個迴圈過程:
首先顛起的乙個石子就是起始變數,5個石子就可以理解為乙個控制變數,通過這兩個步驟你就可以拾起地上的石子,相當於執行迴圈語句下面的條件(通常是if語句),在成功顛起乙個石子並接住以後我們就可以顛起兩個,這一步就相當於for語句中的自增過程。首先引入今天的物件:然後帶這這個小回憶,我們接下來進入今天的學習!
for(表示式1
,表示式2
,表示式3)
函式體
註解
表示式1:
這個語句通常是賦值語句,也就是將迴圈變數初始化也就是賦值,需要有乙個起始的標誌條件,程式才可以執行。
表示式2:
這個語句通常是關係表示式或者邏輯表示式,用來判斷一下是否繼續迴圈下去。
表示式3:
這個語句通常是自增自減表示式,實現對迴圈控制變數的修改。
我們通過迴圈語句模擬一下拾石子過程:
for(顛起石子=1,石子總數=5,石子數在原來基礎+1)
if(成功顛起並接住)
自己=勝算/*自己的勝算加成*/
因此我們可以把for語句理解為:
for(迴圈變數賦初值;迴圈條件控制量;修改迴圈變數)
迴圈體語句;
語句分析:
首先通過對迴圈起始變數(也叫迴圈控制變數,只不過我本人喜歡這樣記,學習其實是乙個適應自己的行為,讓自己懂得自己,才是真正的學到!)的賦初值,然後計算表示式2的值,如果這個輸入進去的這個值符合表示式2的要求,即為真,那麼執行迴圈體語句,如果為假,則退出迴圈。執行完畢迴圈體就會執行表示式3,調整迴圈控制變數的值,返回執行表示式2的值,依此重複這個過程,知道表示式2的值為假,則退出迴圈。== 問題舉例==:
用for語句計算1+2+3…+n的值
程式**:
#include
intmain()
printf
("the sum of 1+2+3+....+%d = %d\n"
,n,sum)
;/*輸出sum的值*/
return0;
}
輸入輸出結果:
程式分析:如果大家不明白是怎樣執行的,我希望大家去單步除錯一下,迴圈語句特別希望大家親自單步除錯!因為這樣大家才能發現並理解for迴圈是如何執行的!
親力親為者成王事也!
for語句的說明:
1.多數情況下,for語句可以使用等價的while語句來表示。
for
(表示式1
;表示式2
;表示式3
) 迴圈體;
等價於:
表示式1
;while
(表示式2
)
2.for迴圈中的三個表示式都是可選項,即可以省略,但是表示式之間的「;」不可以省略。
** 1.省略表示式1,也就是對迴圈語句不進行賦初值,因此為了能夠正常的執行迴圈,需要在for語句之前給迴圈起始變數賦初值。**
例如
n=1;
for(
;n<
10;n++
)
等價於
for
(n=1
;n<
10;n++
)
一般使用這種格式的原因是:迴圈控制變數的初值不是已知常量,而是需要通過前面語句的執行計算得到的。
2.省略表示式2的值,表示不用判斷迴圈條件是否成立,也就是說迴圈條件總是滿足,也就是陷入了死迴圈。
例如:
for
(i=1
;;n++
)
等價於:
while(1
)
3.省略表示式3,如果省略表示式3,就不會對迴圈控制變數進行操作,如果需要這種情況可以在迴圈體中加入修改迴圈控制變數的語句。例如
for
(i=1
;i<=10;
)
到了這裡我覺得大家對於for迴圈已經有了新的理解和見識!恭喜你,今天又是元氣滿滿的一天!
留乙個小作業:
利用for迴圈輸出1-1000之中可以同時被3,5,7整除的數紙上得來終覺淺!
需知此事須躬行!
加油,有夢想的人!
我是悟空,希望和你們一起在程式設計雲上共睹風采
C語言實現簡單的飛機大戰
定義四個函式實現飛機大戰 include include include 定義全域性變數 int high,width 定義邊界 int position x,position y 飛機位置 int bullet x,bullet y 子彈位置 int enemy x,enemy y int sco...
C語言中的控制語句 判斷 環循等
列舉這一部分的目的就是注意它的寫法,尤其是 分號 的位置 if 表示式1 語句1 else if 表示式2 語句2 else 語句3 表示式1 表示式2 表示式3 如果表示式1 為真,則返回表示式2 值,否則返回表示式3的值 switch 表示式0 case 常量表示式1 語句塊1 break ca...
C語言中的控制語句 判斷 環循等
列舉這一部分的目的就是注意它的寫法,尤其是 分號 的位置 if 表示式1 語句1 else if 表示式2 語句2 else 語句3 表示式1 表示式2 表示式3 如果表示式1 為真,則返回表示式2 值,否則返回表示式3的值 switch 表示式0 case 常量表示式1 語句塊1 break ca...