第6章循環(huán)結構設計--C語言程序設計(譚浩強第三版)講解_第1頁
第6章循環(huán)結構設計--C語言程序設計(譚浩強第三版)講解_第2頁
第6章循環(huán)結構設計--C語言程序設計(譚浩強第三版)講解_第3頁
第6章循環(huán)結構設計--C語言程序設計(譚浩強第三版)講解_第4頁
第6章循環(huán)結構設計--C語言程序設計(譚浩強第三版)講解_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第6章循環(huán)結構編程中,概述了goto語句和由goto語句構成循環(huán)的3種循環(huán)while、do-while、for循環(huán)的嵌套的幾個循環(huán)的比較Break語句和continue語句程序示例,6.0循環(huán)結構的導入是循環(huán)中的組合圖層性質變更選項。 這些問題可以引出概念“循環(huán)”。 簡單來說,循環(huán)是指重復執(zhí)行同一程序。6.1概要、c語言可實現的循環(huán):循環(huán)while語句do while語句for語句由goto和if構成,從模型循環(huán)先判斷后執(zhí)行,從模型循環(huán)先執(zhí)行到判斷,由多功能、6.2 goto語句和goto語句構成循環(huán),一般形式:語句、1 2 .用途:從與if文一起構成環(huán)結構的循環(huán)體飛出循環(huán)體外。 濫用goto

2、語句會破壞結構化,進程會變得不規(guī)則,所以應該限制使用。 除非是不得已(例如,可以大幅提高效率),否則使用。 說明:語句標簽:1.用于定義程序內的位置。 2 .用標識符表示,開頭不能是數字。 例如: goto 3t; 錯誤goto t3; 正確的3 .只能在可執(zhí)行語句之前添加。 由if語句和goto語句構成循環(huán),例1修正運算、#include main() int i、sum=0; i=1; 環(huán)形3360 if (I=100 )和=I。 I; 轉環(huán); 打印(% d,和); sum=sum1=1sum=sum2=3sum3=6sum=sum4=10 s um=sum 100=5050,分析:單擊這

3、是一個累加問題sum=,然后使用while語句實現該類型的循環(huán),并將表達式的值設置為真(除0以外) 用6.3while語句實現循環(huán),一般形式:while (式)循環(huán)體語句,執(zhí)行過程:特征:先判斷式后執(zhí)行循環(huán)體。 注意:循環(huán)體可能一次也不執(zhí)行。 循環(huán)之前,必須為循環(huán)控制變量指定初始值。 如果循環(huán)主體包含多個語句,則必須將其顯示為復合語句。 回圈主體需要變更回圈控制變數值的敘述句(使回圈朝向結束的敘述句,否則為死回圈)。 無限循環(huán): while(1)循環(huán)體循環(huán)控制條件多樣化while (i=100) while(getchar ()!=n) n; 循環(huán)體可以是空的: while(c=getchar

4、 () ) )!=A ); c=getchar (),直到從鍵盤輸入字符并輸入a為止; 威爾! c=getchar (); 一般形式:while (式)循環(huán)體句、循環(huán)控制式、解析:累加的問題s=1 2 3 100、s=0 s=s 1 s=s 2 s=s 3、和的新值、s s=0; k=1; 威爾(k=100 ) s=sk。 k; printf(“s=%d,s”),注意: s,k的初始值和位置在do-while語句中實現到類型循環(huán),執(zhí)行整個循環(huán),如果表達式的值為真(非0 ),則再次執(zhí)行整個循環(huán)如果表達式為假(0),則退出循環(huán)。 6.4 do-while語句,常規(guī)格式:do循環(huán)語句while (表

5、達式); 執(zhí)行過程:先執(zhí)行循環(huán)體,然后再判斷公式。 循環(huán)體至少執(zhí)行一次。 do-while語句可以轉換為while語句。 不能省略! 別忘了! 不要! 例如,用do-while語句進行修正,#include main() int k,s; s=0; k=1; 威爾(k=100 ) s=sk。 k; printf(“s=%d,s”)、#包括主機() int k,s; s=0; k=1; do s=s k; k; while(k=100 ); printf(“s=%d,s”),先判斷,然后再判斷,運行結果:1 sum=55再運行: 11 sum=0,運行結果:1 sum=55再運行: 11 sum

6、=11,使用while語句和do-whiile語句但是,如果while后面的表達式從頭開始為假(0值),則兩個循環(huán)的結果不同。 教材117例6.4,6.5 for語句,最簡單的應用形式:for (循環(huán)變量的初始值循環(huán)條件循環(huán)變量的增值環(huán)體語句。 例如: for(i=1; i=100; 和=I; 一般形式:for (式1; 式2; 如果省略了表達式3循環(huán)主體語句、1 .表達式1,請在for之前為循環(huán)變量指定初始值。 例如: i=1; 福爾(; i=100; 一)和=和; 在運行時,跳過“求解表達式1”步驟,其他步驟保持不變。 2 .在式2被省略的情況下,不判斷循環(huán)條件,成為“死循環(huán)”,需要在整個

7、循環(huán)中導入break語句來結束循環(huán)。 例如: for(i=1; 一)和=和; 這相當于I=1;while (1)和=和1; I; 如果省略了死循環(huán)3 .表達式3,則需要在循環(huán)中更改循環(huán)條件以使循環(huán)成功結束。 例如: for(k=1; k=3; s=s k; k; for循環(huán)的說明:for循環(huán)的說明:5. 3式可以省略。 例如: for (; 句子無限循環(huán)不設定初始值,不判斷條件,循環(huán)變量沒有附加值。 不結束地執(zhí)行循環(huán)體。 6 .式2通常是關系式或邏輯式,但也可以是只要值不等于0,就執(zhí)行整個循環(huán)的數值式或字符式。 例如: for(k=1; k-4反應堆; k )s=s k; 僅在k的值為4時退出

8、循環(huán)。 k-4是數值表達式。 例如#include main() char c; 福爾(; (c=getchar () )!=n; 打印機(% c,c ); for語句只有公式2,沒有公式1和公式3。 它的作用是每次讀入字符時輸出該字符,直到輸入換行符為止。 運行狀況:計算機(輸入)計算機(輸出),例如#include main() int i、c; for(i=0; (c=getchar () )!=n; i=c ); 該for句的環(huán)體是空的句子,將本來應該在環(huán)體內處理的內容放入式3。 在式2中,首先從終端向c接受1字符的分配,接著判斷c的值是否不等于換行n,在不等于n的情況下執(zhí)行整個循環(huán)。

9、 例如,用for語句進行修正,#include main() int k,s; s=0; k=1; 威爾(k=100 ) s=sk。 k; printf(“s=%d,s”)、#包括主機() int k,s; s=0; k=1; do s=s k; k; while(k=100 ); printf(“s=%d,s”),先進行判斷,然后再進行判斷,#include main() int k,s; s=0; for(k=1; k=100; k ) s=s k; printf(“s=%d,s”)、6.6個周期的比較并不倡導以goto配置周期。 2 .關于循環(huán)控制:如果循環(huán)控制條件不為零,則執(zhí)行循環(huán)主體

10、語句,否則退出循環(huán)。 3 .一個周期可以解決的問題,可以使用其他兩個,但便利性不同。 4. while循環(huán)一般使用在不確定循環(huán)次數的情況下,for循環(huán)一般使用在不確定循環(huán)次數的情況下(也使用在未確定循環(huán)次數的情況下),一般需要執(zhí)行至少一次do-while循環(huán)的情況下。 5.for-while循環(huán)和while循環(huán)在執(zhí)行整個循環(huán)之前,可能一次也不執(zhí)行,因為do-while循環(huán)會先執(zhí)行整個循環(huán),并且至少執(zhí)行一次整個循環(huán),以確定條件是否為真。 6. while循環(huán)、do-while循環(huán)和for循環(huán)可以使用break語句跳出循環(huán),使用continue語句退出此循環(huán)。 2 .環(huán)體句可以是任何句子,可以是簡

11、單句、復合句、空句。 6.7回路嵌套,回路嵌套是什么? 中的組合圖層性質變更選項。 一個回圈的回圈主體包含另一個回圈,稱為回圈巢狀。 這種嵌套過程總是可以重復的。 中的組合圖層性質變更選項。 在一個循環(huán)外圍一個循環(huán)稱為雙循環(huán)。 一個循環(huán)外圍的兩層循環(huán)稱為三重循環(huán)。 在一個環(huán)之外包圍多個環(huán)稱為多重環(huán)。 while、do-while、for可以相互嵌套自由組合。 1 .一個循環(huán)體內包含另一個完整的循環(huán)結構,稱為嵌套循環(huán)。 2 .可以將循環(huán)嵌入嵌入的循環(huán)中以配置多重循環(huán)。 3 .三個環(huán)可以相互嵌套。下面的一些是合法的嵌套形式: (1) while () while ().(4) while () d

12、o while (); 四、五。 (三)四(四)五(五)六(六)六; 一,六,六。 while (); (2)轉移。 while (); 中的組合圖層性質變更選項。 /在畫面上打印8行7列的星形矩陣。#包括主() inti; for(i=0; i7; I )打印(* ); 打印第一行星號*/printf(n ); for(i=0; i7; I )打印(* ); 列印第二行星號碼*/printf(n ); for(i=0; i7; I )打印(“*”); /*打印第8行星號*/例:雙重循環(huán)實現上例(打印8行7列星號矩形)。#包括主() int I、k; for(i=0; i8; 一)四(k=0;

13、 k7; k )打印機(* ); printf(n ); 6.8 break語句和continue語句、break語句: break; 功能:從switch結構跳出的循環(huán)語句中,結束該級別的循環(huán)跳出。 例如,修正從r=1到r=10的圓面積,在面積大于100之前停止。#定義pi3. 1415主() intr; 浮動區(qū)域; for(r=1; r 100 )中斷; 打印機(r=% d、區(qū)域=%.2 fn、r、區(qū)域); 運行結果: r=1、area=3.14 r=2、area=12.57 r=3、area=28.27 r=4、area=50.26 r=5、area (2) break語句在循環(huán)中使用時

14、,始終與if一起使用,并滿足條件(3)在循環(huán)主體中使用switch語句,break顯示在switch語句中時,只需退出switch而不影響循環(huán)。 (4)break只能結束包含它的本地層結構并跳出,不能跳出多重循環(huán)。 例:一旦輸入了字母,就直接修改輸出程序,直到輸入完成下一個功能的q鍵結束為止,即使輸入其他字符也會忽略。#“包括”stdio.h“主() char ch; while(1) ch=getchar (); 中斷(ch=q| ch=q )。 else if(ch=A,6.8 break語句和continue語句,continue語句: continue; 功能:結束本次循環(huán),跳過本層循

15、環(huán)體中尚未執(zhí)行的語句,接著判斷是否執(zhí)行循環(huán)體。 說明: continue僅用于循環(huán)語句。 總是與if一起使用,并且輸出例如不能被100200除盡的整數。 main() int n; for(n=100; n=200; n ) if (n %3=0)連續(xù)性。 打印機(“% d,n”; 結束本次循環(huán)后,循環(huán)體的剩馀佗文被忽略,執(zhí)行式3,進入下一個循環(huán)。 continue始終創(chuàng)建if的嵌入語句。 這個方法是if (n %3)打印機(“% d”,n ); main() int n; for(n=100; n=200; 中斷(n %3=0)。 打印機(“% d,n”; 說明: continue語句僅結束本次循環(huán)break語句結束本地級循環(huán)的執(zhí)行要考慮使用goto語句從許多重復循環(huán)的內層跳到最外層,但盡量不要使用。 指示:for () for () if () goto結束。 結束:打印(錯誤);continue語句和break語句goto的區(qū)別、break;連續(xù);

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論