這期內(nèi)容當中的小編將會給大家?guī)碛嘘PC語言中for循環(huán)語句的用法,以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
成都創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營銷推廣、網(wǎng)站重做改版、南江網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、HTML5、成都做商城網(wǎng)站、集團公司官網(wǎng)建設、成都外貿(mào)網(wǎng)站建設公司、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為南江等各大城市提供網(wǎng)站開發(fā)制作服務。
for循環(huán)是編程語言中一種開界的循環(huán)語句,而循環(huán)語句 由循環(huán)體及循環(huán)的終止條件兩部分組成,for循環(huán)其在各種編程語言中的實現(xiàn)與表達有所出入,但基本為以C語言和pascal語言代表的兩種形式。
for 循環(huán)語句的一般形式為:
for (表達式1; 表達式2; 表達式3) { 語句; }
首先要強調(diào)兩點:
1) 表達式1、表達式2和表達式3之間是用分號;隔開的,千萬不要寫成逗號。
2) for(表達式1;表達式2;表達式3)的后面千萬不要加分號,很多新手都會犯這種錯誤——會情不自禁地在后面加分號。
因為 for 循環(huán)只能控制到其后的一條語句,而在C語言中分號也是一個語句——空語句。所以如果在后面加個分號,那么 for 循環(huán)就只能控制到這個分號,下面大括號里面的語句就不屬于for循環(huán)了。
下面來看看它的執(zhí)行過程:
求解表達式1。
求解表達式2。若其值為真,則執(zhí)行for語句中指定的內(nèi)嵌語句,然后執(zhí)行第3步;若表達式2值為假,則結束循環(huán),轉到第5步。
求解表達式3。
轉回上面第2步繼續(xù)執(zhí)行。
循環(huán)結束,執(zhí)行 for 語句下面的語句。
從這個執(zhí)行過程中可以看出,“表達式1”只執(zhí)行一次,循環(huán)是在“表達式2”“表達式3”和“內(nèi)嵌語句”之間進行的。
for語句最簡單的形式是:
for (循環(huán)變量賦初值; 循環(huán)條件; 循環(huán)變量增值) { 語句; }
C語言的四種運行模型(箭頭表示循環(huán)方向):
(1)三角基本模型:
例子:
(2)中間循環(huán)體被省略得只剩下";"空語句時的左右往返模型:
條件表達式?末尾循環(huán)體
例子:
(3)末尾循環(huán)體被省略后的上下往返模型:
條件表達式
↓↑
中間循環(huán)體
(4)條件表達式被省略得只剩下";"空語句時,中間循環(huán)體或末尾循環(huán)體帶有跳出語句時的模型
看完上面四個模型后,你會發(fā)現(xiàn)其實它的完成的都是同一個問題,但可以寫成這么多種模型,當然了,這只是省略其中一個語句的模型,你也可以仿照著侵略得只剩下一個語句都可以,前提是不要搞成死循環(huán)!
下面給大家寫一個程序,求 1+2+3+4+…+100 的總和。
# include <stdio.h> int main(void) { int i; int sum = 0; //sum的英文意思是“總和” for (i=1; i<=100; ++i) //++是自加的意思, ++i相當于i = i + 1 { sum = sum + i; /*等價于sum += i;但是不建議這么寫, 因為sum = sum + i看起來更清楚、更舒服*/ } printf("sum = %d\n", sum); return 0; }
輸出結果是:
sum = 5050
這個程序的功能是實現(xiàn)求 1+2+3+4+…+100 的和,如果不用循環(huán),加一次就要一條語句,加 100 次就要 100 條語句。這里是從 1 加到 100,要是從 1 加到 10000 那就要 10000 條語句。但有了循環(huán)就很方便了,你想加到多少就加到多少,只要改一個參數(shù)就可以了。所以循環(huán)很重要。
下面按照執(zhí)行過程看看上面這個程序是怎樣執(zhí)行的。
1、首先定義一個循環(huán)變量 i。定義的時候可以不給它賦初值,在 for 循環(huán)里面再給它賦初值也行。但前面說過,最好在定義變量的時候就對它進行初始化,如果值不確定就初始化為 0。所以程序中也可以在定義 i 的時候就給它賦初值,那么 for 循環(huán)里的“表達式1”就可以省略了,但分號不可以省略。
這樣的話,執(zhí)行的時候就跳過第1步,直接進入第2步,其他的不變。所以程序也可以像下面這樣寫:
# include <stdio.h> int main(void) { int i = 1; int sum = 0; for (; i<=100; ++i) { sum = sum + i; } printf("sum = %d\n", sum); return 0; }
當然表達式1加上也行,大不了再重新賦一次值。
2、然后定義一個用來存放“和”的變量 sum,并給它賦初值 0,然后進入 for 循環(huán):
首先求解表達式1,即給變量i賦初值,i=1;表達式1只執(zhí)行這一次,下面都不會再執(zhí)行了。
然后求解表達式2,若 1<=100 成立,則執(zhí)行 for 循環(huán)中的內(nèi)嵌語句,即 sum=0+1。
然后執(zhí)行第3步,變量 i 自加 1,即變量 i 由 1 變?yōu)?2。
然后再求解表達式2,2<=100 成立,則執(zhí)行 for 循環(huán)中的內(nèi)嵌語句,sum=0+1+2。
然后再執(zhí)行第3步,變量 i 自加 1,即變量 i 由 2 變?yōu)?3。
然后再求解表達式2,即 3<=100 成立,則執(zhí)行 for 循環(huán)中的內(nèi)嵌語句,sum=0+1+2+3。
……
就這樣一直循環(huán)下去,直到 ++i 等于 100 的時候,求解表達式2,即 100<=100 成立,則執(zhí)行 for 循環(huán)中的內(nèi)嵌語句,sum=0+1+2+3+…+100。
然后再執(zhí)行第3步,變量 i 自加 1,即變量 i 由 100 變?yōu)?101。然后再求解表達式2,即 101<=100 不成立,則結束循環(huán),執(zhí)行 for 循環(huán)下面的語句即 printf。
以上就是這個程序的執(zhí)行過程。關于 for 語句的代碼規(guī)范化問題,有兩點要再跟大家強調(diào)一下:
1)if、else、for、while、do 都只能控制到其后的一條語句,如果要控制多條語句必須加大括號{}。但基于代碼規(guī)范化,if、else、for、while、do 后面的執(zhí)行語句不論有多少行,就算只有一行也要加{}。
2) 像 if、for、while 等關鍵字之后應留一個空格再跟左括號(,以突出關鍵字。
此外上面的程序還有一個知識點要跟大家說一下:從功能上講,for(i=1; i<=100;++i)
完全可以寫成for(i=1; i<101; ++i)
,而且建議大家盡量使用這種寫法。也就是說,循環(huán)語句的循環(huán)條件盡量寫成半開半閉的,不管是 for 循環(huán)還是 while 循環(huán)。
for(i=1; i<101; ++i)
實際上是 1≤i<101
,是半開半閉的;而for(i=1; i<=100; ++i)
實際上是 1≤i≤100
,是全閉的。那么為什么建議使用半開半閉的呢?因為如果寫成 i<=100 的話,那么每次判斷的時候都要判斷兩次,即 i<100 和 i==100,而寫成 i<101 的話每次只需要判斷一次。
下面再給大家寫一個程序,求 1 到 100 之間所有奇數(shù)的和。
# include <stdio.h> int main(void) { int i; int sum = 0 ; for (i=1; i<100; i+=2) //i+=2;等價于i = i + 2; { sum = sum + i; } printf("sum = %d\n", sum); return 0; }
輸出結果是:
sum = 2500
上述就是小編為大家分享的C語言中for循環(huán)語句的用法了,如果您也有類似的疑惑,不妨礙參照上述分析進行理解。如果想了解更多相關內(nèi)容,請關注創(chuàng)新互聯(lián)行業(yè)資訊。
文章題目:C語言中for循環(huán)語句的用法
當前地址:http://chinadenli.net/article22/gjodcc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供App設計、小程序開發(fā)、面包屑導航、移動網(wǎng)站建設、App開發(fā)、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)