• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      C語言中循環(huán)語句的分析

      2017-04-10 06:20:51張國欽宋偉馬俊興
      電腦知識與技術 2017年4期

      張國欽++宋偉++馬俊興

      摘要:循環(huán)結構是程序設計的三種基本結構之一,在程序設計中具有重要地位。分析了C語言中的循環(huán)語句,指出了各自所屬的循環(huán)結構,并對它們的區(qū)別和適用場合做了分析。

      關鍵詞:循環(huán)結構;while語句;do...while語句;for語句

      中圖分類號:TP312 文獻標識碼:A 文章編號:1009-3044(2017)04-0063-02

      Analysis of Loop Statements in C Language

      ZHANG Guo-qin, SONG Wei, MA Jun-xing

      (The Center of the Modern Educational Technology, Henan Finance and Banking College, Zhengzhou 450046, China)

      Abstract: Loop structure is one of the three basic structures of program design, which has an important position in programming. This paper analyzes the loop statements in C language, and points out their respective loop structures, and analyzes their differences and application occasions.

      Key words: loop structure; while statement; do...while statement; for statement

      1 背景

      1966年,Bohra和Jacopini提出了程序設計的三種基本結構:順序結構、選擇結構和循環(huán)結構。循環(huán)結構將一些指令組合起來構成循環(huán)體,當滿足某種條件時反復執(zhí)行。循環(huán)結構包括當型循環(huán)結構和直到型循環(huán)結構。C語言中實現(xiàn)循環(huán)結構的循環(huán)語句包括if...goto語句、while語句、do...while語句和for語句。if...goto語句因為不符合結構化程序設計的要求現(xiàn)在已經(jīng)很少有人使用,while語句和for語句很好理解,而do...while語句卻讓很多人疑惑,不知道它到底屬于當型循環(huán)結構還是直到型循環(huán)結構。網(wǎng)上也經(jīng)常有人提出這樣的疑問,而很多教材對此解釋得不甚清晰,更增加了C語言初學者的困惑。本文將試圖厘清這些循環(huán)語句及它們所屬的循環(huán)結構,并對它們的區(qū)別和適用場合做一分析。

      2 循環(huán)結構的分類

      2.1 當型(while型)循環(huán)結構

      當型循環(huán)結構如圖1(a)所示。它的執(zhí)行過程為:先判斷條件c1,如果c1成立,則執(zhí)行循環(huán)體A,執(zhí)行完A后,再判斷條件c1,如果c1成立,再執(zhí)行循環(huán)體A,如此反復執(zhí)行循環(huán)體A,直到某一次條件c1不成立為止,此時不執(zhí)行循環(huán)體A,而從b點離開循環(huán)結構。當型循環(huán)結構的主要特點是當循環(huán)條件成立時執(zhí)行循環(huán)體,當循環(huán)條件不成立時離開循環(huán)體。

      2.2 直到型(until型)循環(huán)結構

      直到型循環(huán)結構如圖1(b)所示。它的執(zhí)行過程為:先執(zhí)行循環(huán)體A,然后判斷條件c2是否成立,如果c2不成立,則繼續(xù)執(zhí)行循環(huán)體A,然后再對條件c2作判斷,如果條件c2仍然不成立,則繼續(xù)執(zhí)行循環(huán)體A,如此反復執(zhí)行A,直到給定的條件c2成立為止,此時不再執(zhí)行循環(huán)體A,從b點離開循環(huán)結構。直到型循環(huán)結構的主要特點是當循環(huán)條件成立時離開循環(huán)體,當循環(huán)條件不成立時執(zhí)行循環(huán)體。

      很容易看出,如果當型循環(huán)結構和直到型循環(huán)結構執(zhí)行相同的功能,那么循環(huán)條件c1和c2之間必然存在關系:c2=,也就是說c1和c2是互為相反的條件。

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

      C語言中的循環(huán)語句包括if...goto語句、while語句、do...while語句和for語句。我們用這幾個語句分別來求解一個簡單的問題(記為問題a):求n的階乘n!的值(假定n2)。從中來分析它們的區(qū)別。

      3.1 if...goto語句

      goto語句為無條件轉移語句,一般格式為goto 語句標號;當goto語句和if語句結合就可以實現(xiàn)有條件的轉移,從而實現(xiàn)循環(huán)結構。用if...goto語句求問題a的代碼為:

      當型循環(huán)結構 直到型循環(huán)結構

      3.2 while語句

      while語句的一般格式為:while(條件表達式)循環(huán)體;。while語句的特點是:

      1)當條件表達式為真時,執(zhí)行循環(huán)體;為假時,離開循環(huán)體。因此,while語句屬于當型循環(huán)結構。

      2)先判斷條件表達式,后執(zhí)行循環(huán)體。

      用while語句求解問題a的代碼為:

      do...while語句的特點是先執(zhí)行一次循環(huán)體,然后判斷條件表達式,如果為真,則繼續(xù)執(zhí)行循環(huán)體;如果為假,則離開循環(huán)體。因此,do...while語句屬于當型循環(huán)結構,雖然它從形式上來說很像直到型循環(huán)結構。do...while語句和pascal語言中的repeat...until語句很像,都是先執(zhí)行循環(huán)體,再做條件判斷,但repeat...until語句是條件為真時離開循環(huán)體,屬于直到型循環(huán)結構。

      用do...while語句求解問題a的代碼為:

      假如do...while語句是直到型循環(huán)結構,那么它的條件表達式和while語句的條件表達式一定是相反的,如果把do...while語句中的條件i<=n改成i>n,則得不到想要的結果。do...while語句和while語句的區(qū)別是當循環(huán)條件一開始就為假時,do...while語句執(zhí)行1次循環(huán)體,while語句執(zhí)行0次。

      3.4 for語句

      for語句的一般格式為:

      for(表達式1;表達式2;表達式3)循環(huán)體;

      其中表達式1為初始化語句,一般情況下包含循環(huán)變量的初始化,僅在循環(huán)開始時執(zhí)行一次。表達式2為循環(huán)條件表達式,用來判定是否繼續(xù)循環(huán)。在每次執(zhí)行循環(huán)體前先執(zhí)行此表達式,值為真時繼續(xù)執(zhí)行循環(huán)體,值為假時離開循環(huán)體。因此for語句屬于當型循環(huán)結構。表達式3作為循環(huán)的調整,一般情況下是改變循環(huán)變量的值,使循環(huán)體執(zhí)行若干次之后循環(huán)條件表達式的值為假,從而離開循環(huán)體。

      對for語句的說明:

      1)表達式1~3都可以省略。省略表達式1以后,表達式1要放到for語句之前以完成對循環(huán)變量的初始化;省略表達式2后,表示循環(huán)條件永遠為真;省略表達式3后,表達式3要放到循環(huán)體內。

      2)for語句可以改寫為while語句的形式:

      表達式1;

      3.5 幾種循環(huán)語句的比較

      1)while語句和do...while語句一般用于處理循環(huán)條件已知,循環(huán)次數(shù)不確定的情況。

      2)for語句一般用于處理循環(huán)次數(shù)確定的情況,也可以用于循環(huán)次數(shù)不確定而只給出循環(huán)條件的情況,它完全可以代替while語句。因此for語句更為靈活,功能也更為強大。

      3)if...goto語句既可以實現(xiàn)當型循環(huán)結構,也可以實現(xiàn)直到型循環(huán)結構,不過現(xiàn)在已經(jīng)不常用。while語句、do...while語句和 for語句均屬于當型循環(huán)結構。

      4)這幾種語句可以用來處理同一問題,可以相互替代,沒有實質上的差別。

      4 結束語

      循環(huán)結構在程序設計中占有重要地位,只有弄清楚基本概念,熟練掌握各種循環(huán)語句的基本用法,才能寫出可讀性更強,執(zhí)行效率更高的程序。

      參考文獻:

      [1] 譚浩強. C程序設計[M]. 4版.北京: 清華大學出版社, 2010: 26-27.

      [2] 李瑞華.C語言循環(huán)語句淺析[J]. 電腦知識與技術, 2011, 7(26): 6423-6424.

      富蕴县| 永昌县| 古田县| 吴江市| 咸阳市| 拉萨市| 双城市| 鹤庆县| 宝丰县| 泸定县| 青川县| 祁连县| 雅安市| 岢岚县| 宜阳县| 通渭县| 绿春县| 民乐县| 蓝田县| 平邑县| 永州市| 中卫市| 岑溪市| 富蕴县| 延安市| 广元市| 乐陵市| 绥德县| 清涧县| 西乌珠穆沁旗| 旬阳县| 克拉玛依市| 双鸭山市| 三河市| 定远县| 华阴市| 海南省| 焉耆| 灵璧县| 阿鲁科尔沁旗| 洛隆县|