国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

議C語言中循環(huán)語句

2012-07-09 19:07劉彥戎
2012年11期
關(guān)鍵詞:逗號初值C語言

劉彥戎

摘要:在C語言循環(huán)結(jié)構(gòu)設(shè)計中,除了可以用while和do-while語句實現(xiàn)循環(huán)外,C語言還提供了for語句可以實現(xiàn)循環(huán),for語句不僅比以上兩種語句實現(xiàn)起來靈活,而且可以用于循環(huán)次數(shù)確定的情況??偟膩碚f完全可以代替while和do-while.

關(guān)鍵詞:For語句循環(huán)結(jié)構(gòu)條件表達式

1、for語句的表達形式

for(表達式1;表達式2;表達式3),3個表達式的主要作用:表達式1設(shè)置初始條件,只執(zhí)行一次;表達式2循環(huán)條件表達式,用來判斷程序是否繼續(xù)執(zhí)行,在每次執(zhí)行循環(huán)體前先執(zhí)行此表達式,決定是否繼續(xù)執(zhí)行循環(huán)體;表達式3是對循環(huán)的調(diào)整,是在執(zhí)行完循環(huán)體后才進行的。所以我們可以對for語句這樣理解 for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量自增或自減)例如:

for(i=1;i<50;i++)

sum=sum+i;

其中i=1是給循環(huán)變量賦初值1,i<50是指定循環(huán)條件(當i的值小于50時循環(huán)繼續(xù)執(zhí)行)i++的作用是使循環(huán)變量i的值不斷變化,以便最終滿足終止循環(huán)的條件,使循環(huán)結(jié)束。

(1)for語句表達形式中的表達式1可以省略,但表達式1后邊的分號不能省略。例如:

for(;i<50;i++)sum=sum+i; (由于省略了表達式1,也即是沒給循環(huán)變量賦初值,因此,為了程序能正常運行,應(yīng)該在FOR語句之前給循環(huán)變量賦初值。即:i=1; for(;i<50;i++) sum=sum+i;執(zhí)行for 語句時,跳過表達式1這一步,由于在For之前加了語句i=1,因此其作用仍然不變。)

(2)for語句表達形式中的表達式2也可以省略,但表達式2后邊的分號不能省略。即不設(shè)置和檢查循環(huán)結(jié)束的條件。例如:for(i=1; ;i++) sum=sum+i;此時循環(huán)無終止的進行下去,也就說表達式2一直為真.

(3)表達式3也可以省略,但此時程序設(shè)計者應(yīng)另外設(shè)法保證循環(huán)能正常結(jié)束。

(4)表達式1和表達式3都沒有,只有表達式2,即只給出循環(huán)結(jié)束條件。對于沒有表達式1和表達式3的for循環(huán)語句,為了讓循環(huán)正常執(zhí)行,應(yīng)當在for語句前給循環(huán)變量賦初值。 從此處我們可以看出for語句比while語句功能更強大,除了可以給出循環(huán)條件外,還可以賦初值,使循環(huán)變量自動增減等。

(5)表達式1、表達式2和表達式3都可以省略。例如:for(; ;) printf(“%d\n”,i);

相當于 while(1) printf(“%d\n”,i);即就是不設(shè)初值,不判斷表達式2的條件(表達式2始終為真),不改變循環(huán)變量。這樣程序就無終止的執(zhí)行循環(huán)體語句。顯然這樣的程序是沒有任何價值的。

(6)表達式1可以是設(shè)置循環(huán)變量初值的賦值表達式,也可以是與循環(huán)變量無關(guān)的其他表達式。

例如:for(sum=0;i<50;i++) sum=sum+i;總之,表達式3可以是與循環(huán)控制無關(guān)的任意表達式。但是不論如何寫for語句,都必須是循環(huán)能正常執(zhí)行,防止死循環(huán)。

(7)表達式1和表達式3可以是一個簡單的表達式,也可以是逗號表達式,即就是包含一個以上的簡單表達式,中間用逗號隔開。

如:for(sum=0,i=1,i<50;i++) sum=sum+i ;或 for(i=0,j=50;i(8)表達式2一般是關(guān)系表達式(如i<50)或邏輯表達式(如m

①for(i=0;(ch1=getchar())!=\n;i+=ch1);在表達式2中先從終端接收一個字符賦給ch1,然后判斷這個賦值表達式的值是否不等于‘\n(轉(zhuǎn)移字符 換行),如果不等于\n,就執(zhí)行這個循環(huán)體,它完成的作用是不斷輸入字符,將他們的ASCⅡ碼相加,直到輸入一個“換行”符為止,程序結(jié)束執(zhí)行。這里我們要注意的是:此時for語句的循環(huán)語句為空語句,把本來要在循環(huán)體內(nèi)處理的內(nèi)容放在表達式3中,作用是一樣的,可見for語句功能的強大,可以再表達式中完成本來應(yīng)在循環(huán)體內(nèi)完成的操作。

②for(;((ch1=getchar())!=\n;)printf(“%c”,ch1);這個for語句中只有表達式2,而無表達式1和表達式3.它的作用是每讀入一個字符后立即輸出該字符,直到輸入一個“換行”為止。

運行情況: Computer((輸入) Computer(輸出)。這里我們要注意的是:從終端鍵盤向計算機輸入時,是在按Enter鍵以后將一批數(shù)據(jù)一起送到內(nèi)存緩沖區(qū)去的。因此輸出結(jié)果不是CCoommppuutteerr,即不是從終端輸入一個字符馬上輸出一個字符,而是在按Enter鍵后數(shù)據(jù)才送入內(nèi)存緩沖,然后每次從緩沖區(qū)讀一個字符,再輸出該字符。

從上面的介紹我們可以看到,C語言的FOR語句使用非常靈活,變化多端。C語言的FOR語句比其他語言中的for語句靈活和強大的多??梢园蜒h(huán)體和一些循環(huán)控制無關(guān)的操作也作為表達式1和表達式3的出現(xiàn),這樣程序可以比較簡潔。

2、for語句的執(zhí)行過程

(1)先求解表達式1.

(2)再求解表達式2,如果表達式2為真,則執(zhí)行FOR語句中的循環(huán)體,然后執(zhí)行(3),如果為假,則循環(huán)結(jié)束,轉(zhuǎn)到第(5)步。

(3)求解表達式3.

(4)轉(zhuǎn)回步驟(2)繼續(xù)執(zhí)行。

(5)循環(huán)結(jié)束,執(zhí)行for語句下面的一個語句。

3.種循環(huán)的比較

(1) 在處理循環(huán)語句中,while、do-while和for 都可以用來處理同一個問題,一般情況下他們3個可以互換。

(2)在while循環(huán)和do-while循環(huán)中,只在while后面的括號內(nèi)指定循環(huán)條件,因此為了使循環(huán)能正常結(jié)束,應(yīng)在循環(huán)中包含使循環(huán)區(qū)域結(jié)束的語句。For循環(huán)可以在表達式3中包含使循環(huán)趨于結(jié)束的操作,甚至可以將循環(huán)體重的操作全部放到表達式3中。因此for語句的功能更強,凡是while循環(huán)能完成的,用for循環(huán)都能實現(xiàn)。

(3)用while和do-while循環(huán)時,循環(huán)變量初始化的操作應(yīng)在while和do-while語句之間完成。而for語句可以在表達式1中實現(xiàn)循環(huán)變量的初始化。

(4)while、do-while和for循環(huán),都可以用break語句跳出循環(huán),用continue語句結(jié)束本次循環(huán)。

4.種循環(huán)舉例:求1+2+3+……+100,即∑100n=1n

(作者單位:陜西國際商貿(mào)學院)

參考文獻:

[1]《電腦知識與技術(shù)》2009年第24期。

[2]《家教世界》2012年04期。

[3]《C語言程序設(shè)計實例教程》涂玉芬主編北京郵電出版社 2011年第一版。

猜你喜歡
逗號初值C語言
我是逗號
具非定常數(shù)初值的全變差方程解的漸近性
一種適用于平動點周期軌道初值計算的簡化路徑搜索修正法
基于Visual Studio Code的C語言程序設(shè)計實踐教學探索
三維擬線性波方程的小初值光滑解
基于C語言的計算機軟件編程
高職高專院校C語言程序設(shè)計教學改革探索
論子函數(shù)在C語言數(shù)據(jù)格式輸出中的應(yīng)用
具有無窮大初值的二維奇異攝動問題的漸近解