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

?

淺談中職計(jì)算機(jī)C語言教學(xué)中的三種循環(huán)結(jié)構(gòu)

2019-06-11 07:16:42姜研艷
科學(xué)與財(cái)富 2019年9期

姜研艷

摘 要:C語言簡潔緊湊,靈活方便,是一種廣泛使用的程序設(shè)計(jì)語言,它具有功能豐富、表達(dá)能力強(qiáng),使用靈活方便等特點(diǎn)。像許多計(jì)算機(jī)語言一樣,C語言有三種基本結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。而循環(huán)結(jié)構(gòu)是重點(diǎn)也是難點(diǎn)。本文對C語言中的三種循環(huán)做了分析和比較,讓學(xué)生更容易理解和掌握C語言。

關(guān)鍵詞:C語言;while循環(huán);do..while循環(huán);for循環(huán)

C語言簡潔緊湊,靈活方便。成為最受歡迎的語言之一,同時也是中職計(jì)算機(jī)學(xué)校必學(xué)的一門語言課。在程序設(shè)計(jì)中對于那些需要重復(fù)執(zhí)行的操作應(yīng)該采用循環(huán)結(jié)構(gòu)來完成,循環(huán)結(jié)構(gòu)又稱重復(fù)結(jié)構(gòu)。利用循環(huán)結(jié)構(gòu)處理各類重復(fù)操作既簡單又方便。循環(huán)程序設(shè)計(jì)是C語言的重點(diǎn)也是難點(diǎn)。循環(huán)程序主要有三種類型。while循環(huán),do…while循環(huán)。for循環(huán)。因此,掌握三種類型之間的區(qū)別和聯(lián)系則顯得尤為重要。它們?nèi)叩膮^(qū)別和聯(lián)系主要體現(xiàn)在以下幾個方面:

一、一般形式:

1、while循環(huán):

while(條件表達(dá)式)

{語句序列;}

2、do…while循環(huán)

do

{語句序列;}

while(條件表達(dá)式);

3、for循環(huán)

for(表達(dá)式1;表達(dá)式2;表達(dá)式3)

{語句序列;}

二、執(zhí)行過程:

while循環(huán):

當(dāng)條件表達(dá)式語句的返回的值為真的時候,程序就會執(zhí)行下面大括號里的語句序列中的語句,當(dāng)程序執(zhí)行完這個執(zhí)行語句序列中的語句的時候,程序就會再一次的回來執(zhí)行這個條件表達(dá)式語句,當(dāng)程序檢查這個條件表達(dá)式語句的結(jié)果還是真時,程序就會再一次的執(zhí)行這個執(zhí)行語句塊中的語句,當(dāng)程序執(zhí)行完成這個執(zhí)行語句塊中的語句以后,程序就會再一次的回來判斷這個條件表達(dá)式語句,當(dāng)這個條件表達(dá)式語句返回的值還是真的時候,程序就會再一次的去執(zhí)行這個大括號中的執(zhí)行語句塊中的語句,如此往復(fù)直到這個條件表達(dá)式語句返回的結(jié)果為假的時候,程序就會停止循環(huán),而去執(zhí)行整個while循環(huán)語句以外的后面的其他的語句。

do ..while循環(huán)

do… while循環(huán)while后面必須要有分號,不管while條件表達(dá)式語句是否為true,程序要先執(zhí)行一次語句序列中的語句,當(dāng)?shù)谝淮螆?zhí)行完執(zhí)行語句序列中的語句后,程序再去判斷這個條件表達(dá)式語句是否為true,如果為true再進(jìn)行這個while循環(huán),如果為false就跳出這個循環(huán)。

for循環(huán)

1、第一次循環(huán),即初始化循環(huán)。

首先執(zhí)行表達(dá)式1(一般為初始化語句),再執(zhí)行表達(dá)式2(一般為條件判斷語句),判斷表達(dá)式1是否符合表達(dá)式2的條件,如果符合,則執(zhí)行語句序列,否則,停止執(zhí)行,最后執(zhí)行表達(dá)式3。

2、下次的循環(huán):

首先執(zhí)行表達(dá)式2,判斷表達(dá)式3是否符合表達(dá)式2的條件;如果符合,繼續(xù)執(zhí)行語句序列,否則停止執(zhí)行,最后執(zhí)行表達(dá)式3.如此往復(fù),直到表達(dá)式3不再滿足表達(dá)式2的條件。在for循環(huán)中“表達(dá)式1”和“表達(dá)式3”可以是一個簡單的表達(dá)式。

總體來說,while是先判斷再執(zhí)行,do…while是先執(zhí)行再判斷,for循環(huán)的語句顯得更緊湊一些,for語句一般更適合用于循環(huán)次數(shù)比較明確的情況,而while或do…while語句則用于循環(huán)次數(shù)難以判定的情況。

三、循環(huán)次數(shù)

從循環(huán)的執(zhí)行過程不難看出。While循環(huán)是先判斷后執(zhí)行,一旦第一次條件為假,則它的執(zhí)行次數(shù)就為0,最少執(zhí)行0次。for循環(huán)也是一樣的。而do…while則不同。它是先執(zhí)行后判斷,所以不管條件是否為真,它都要執(zhí)行一次。所以它的執(zhí)行次數(shù)最少為1次。

四、while和do...while的區(qū)別比較

下面通過例題比較兩者的區(qū)別

1、 #include ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2、 #include

main() ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? main()

{char ch; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?{char ch;

ch=getchar(); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?ch=getchar();

do ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?while(ch!=*)

{putchar(ch); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {putchar(ch);

ch=getchar(); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ch=getchar();

}while(ch!=*); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}

} ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }

這兩個程序如果同樣都是輸入:*AB*

第一種do..while循環(huán)是先執(zhí)行后判斷,因此不做判斷先輸出。結(jié)果是*AB。

第二種while循環(huán)是先判斷后執(zhí)行,因此它先做判斷,如果是真值再做輸出。結(jié)果是*AB*

五、三種循環(huán)的共同點(diǎn)

while, do-while, for循環(huán)語句,雖然格式不同,但它們有著共同的特點(diǎn),都實(shí)用于循環(huán)結(jié)構(gòu)程序設(shè)計(jì)。在程序設(shè)計(jì)的過程中,都具有如下三個要素:

1、循環(huán)變量賦初值。

2、循環(huán)條件。

3、循環(huán)變量值的調(diào)整。

循環(huán)體語句的正確執(zhí)行,依賴于循環(huán)的條件,循環(huán)的條件依賴循環(huán)入口時的初始化工作,一環(huán)緊扣一環(huán)。

循環(huán)體中安排哪些語句,要從分析具體問題入手,前后呼應(yīng),合乎邏輯。并且能確保循環(huán)能夠終止。而且結(jié)論正確。

循環(huán)體中一定要有能改變循環(huán)繼續(xù)的條件語句,使得循環(huán)趨于結(jié)束,否則循環(huán)將無休止的進(jìn)行下去,而形成“死循環(huán)”。這是我們應(yīng)該避免的。所以為使循環(huán)能夠正確進(jìn)行,一定要做好循環(huán)的準(zhǔn)備工作,在循環(huán)語句開始前,要給循環(huán)條件和循環(huán)初值賦上一定的值。

六、實(shí)際應(yīng)用

理論的學(xué)習(xí)需要實(shí)際的題來檢驗(yàn)。不同的題有最適合它的循環(huán)結(jié)構(gòu)。

有這樣的兩道題。

1、從鍵盤上輸入10個數(shù),求其和。

分析用三類循環(huán)中的哪個呢?不難看出這道題中的循環(huán)次數(shù)比較明確,應(yīng)該最優(yōu)選用for循環(huán)。它的編程如下:

#include

main()

{ int i,num,sum;

sum=0;

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

{scanf(“%d”,&num);

sum=sum+num;

}

printf(“%d”,sum);

}

2、從鍵盤上輸入若干個數(shù),直到遇到2為止,求它們的和。

分析得出循環(huán)次數(shù)難以判定,排除for。應(yīng)該用while或者do…while。兩個都可以?還是其中一個呢?因?yàn)閣hile是先判定后執(zhí)行;do…while是先執(zhí)行后判定。而本題中要求遇到2就截止。如果用do…while的話,第一個數(shù)就是2,那么這個2也會被加進(jìn)去。將違背我們的題意。所以不能用do…while。while是先判定后執(zhí)行。如果第一個數(shù)是2的話,while會先判斷不合理,不會去執(zhí)行語句序列的。所以本題應(yīng)該選用while循環(huán)。

它的編程如下:

#include

main()

{ int n;

int t=0;

scanf(“%d”,&n);

while(n!=0)

{ t=t+n;

scanf(“%d”,&n);

}

printf(“%d\n”,t);

}

總之,循環(huán)結(jié)構(gòu)是C語言中程序設(shè)計(jì)中的一個重要知識點(diǎn)。教師在教學(xué)過程中,應(yīng)讓學(xué)生掌握三種循環(huán)的區(qū)別和聯(lián)系。盡可能提高學(xué)生的學(xué)習(xí)積極性,點(diǎn)燃學(xué)生學(xué)習(xí)的熱情,讓學(xué)生能輸出正確的程序,輸出快樂的人生。

參考文獻(xiàn):

[1]陳琳.編程語言基礎(chǔ):C語言,高等教育出版社,2016,07

[2]陳琳.C語言學(xué)習(xí)輔導(dǎo)與上機(jī)實(shí)習(xí), 高等教育出版社,2012,01

[3]譚浩強(qiáng).C語言程序設(shè)計(jì)教程,高等教育出版社,2002

邹平县| 兰坪| 酉阳| 合肥市| 类乌齐县| 江阴市| 平江县| 晋城| 洛隆县| 汉川市| 乌拉特中旗| 柘荣县| 昌吉市| 罗江县| 怀来县| 淮阳县| SHOW| 东台市| 华坪县| 海晏县| 鄂托克前旗| 云南省| 昌江| 桃江县| 水城县| 梧州市| 屯门区| 隆昌县| 那坡县| 洪湖市| 将乐县| 大厂| 咸宁市| 海宁市| 深州市| 临高县| 巩留县| 临沂市| 延庆县| 高尔夫| 句容市|