• 
    

    
    

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

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

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

      劉彥戎

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

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

      1、for語句的表達(dá)形式

      for(表達(dá)式1;表達(dá)式2;表達(dá)式3),3個(gè)表達(dá)式的主要作用:表達(dá)式1設(shè)置初始條件,只執(zhí)行一次;表達(dá)式2循環(huán)條件表達(dá)式,用來判斷程序是否繼續(xù)執(zhí)行,在每次執(zhí)行循環(huán)體前先執(zhí)行此表達(dá)式,決定是否繼續(xù)執(zhí)行循環(huán)體;表達(dá)式3是對循環(huán)的調(diào)整,是在執(zhí)行完循環(huán)體后才進(jì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)條件(當(dāng)i的值小于50時(shí)循環(huán)繼續(xù)執(zhí)行)i++的作用是使循環(huán)變量i的值不斷變化,以便最終滿足終止循環(huán)的條件,使循環(huán)結(jié)束。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      (1)先求解表達(dá)式1.

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

      (3)求解表達(dá)式3.

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

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

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

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

      (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)可以在表達(dá)式3中包含使循環(huán)趨于結(jié)束的操作,甚至可以將循環(huán)體重的操作全部放到表達(dá)式3中。因此for語句的功能更強(qiáng),凡是while循環(huán)能完成的,用for循環(huán)都能實(shí)現(xiàn)。

      (3)用while和do-while循環(huán)時(shí),循環(huán)變量初始化的操作應(yīng)在while和do-while語句之間完成。而for語句可以在表達(dá)式1中實(shí)現(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)學(xué)院)

      參考文獻(xiàn):

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

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

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

      猜你喜歡
      逗號初值省略
      逗號
      我是逗號
      具非定常數(shù)初值的全變差方程解的漸近性
      一種適用于平動點(diǎn)周期軌道初值計(jì)算的簡化路徑搜索修正法
      逗號
      偏旁省略異體字研究
      三維擬線性波方程的小初值光滑解
      中間的省略
      詩選刊(2015年6期)2015-10-26 09:47:13
      具有無窮大初值的二維奇異攝動問題的漸近解
      省略
      詩歌月刊(2009年4期)2009-05-22 03:38:04
      滁州市| 巴楚县| 四川省| 安宁市| 大化| 深泽县| 池州市| 赫章县| 通渭县| 普定县| 雷波县| 博爱县| 永胜县| 获嘉县| 龙游县| 罗甸县| 宜丰县| 石嘴山市| 大姚县| 盐源县| 牙克石市| 府谷县| 门源| 大冶市| 余干县| 五常市| 靖西县| 彰武县| 竹山县| 分宜县| 安多县| 开鲁县| 大余县| 昌邑市| 新安县| 百色市| 祁阳县| 潜江市| 西城区| 阜新市| 通江县|