第5章、循環(huán)結(jié)構(gòu)(二)_第1頁
第5章、循環(huán)結(jié)構(gòu)(二)_第2頁
第5章、循環(huán)結(jié)構(gòu)(二)_第3頁
第5章、循環(huán)結(jié)構(gòu)(二)_第4頁
第5章、循環(huán)結(jié)構(gòu)(二)_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第五章第五章 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)(二二)/回顧回顧 nwhile循環(huán)和do-while循環(huán)結(jié)構(gòu)之間的異同?/n學(xué)會使用for循環(huán)結(jié)構(gòu)n學(xué)會在程序中使用break和continuen掌握循環(huán)的嵌套學(xué)習(xí)目標(biāo)學(xué)習(xí)目標(biāo)/為什么使用為什么使用for循環(huán)循環(huán)2-1n回顧問題1:寫一百遍“我最棒” n回顧問題2:根據(jù)人數(shù)和成績,計算平均成績共同點:確定的循環(huán)次數(shù)共同點:確定的循環(huán)次數(shù) int i=0;while(i100) System.out.println(我最棒我最棒); i+; for(int i=0;i100;i+) System.out.println(我最棒我最棒);while循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)f

2、or循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)/for循環(huán)的語法和執(zhí)行順序循環(huán)的語法和執(zhí)行順序什么是什么是for循環(huán)循環(huán)for( ; ; ) ; 條件為條件為true 循環(huán)體被執(zhí)行循環(huán)體被執(zhí)行 for ( int i = 0 ; i 100 ; i+ ) System.out.println(我最棒我最棒); 注意:注意:for循環(huán)括號中的三個表達(dá)式都可以省略,但是“;”;”不能省。不能省。 表達(dá)式表達(dá)式1 表達(dá)式表達(dá)式2 表達(dá)式表達(dá)式3 循環(huán)操作循環(huán)操作 參數(shù)初始化參數(shù)初始化條件判斷條件判斷更新循環(huán)變量更新循環(huán)變量1243/如何使用如何使用for循環(huán)循環(huán)1、循環(huán)錄入某學(xué)員的5門課成績,計算平均分循環(huán)次數(shù)循環(huán)次數(shù):5循

3、環(huán)條件循環(huán)條件:循環(huán)的次數(shù)不足:循環(huán)的次數(shù)不足5,繼續(xù)循環(huán),繼續(xù)循環(huán)循環(huán)操作循環(huán)操作:錄入成績,計算:錄入成績,計算成績之和成績之和n使用for循環(huán)結(jié)構(gòu)的步驟1、分析循環(huán)條件和循環(huán)操作2、套用for語法寫出代碼3、檢查循環(huán)是否能夠退出結(jié)合問題結(jié)合問題1/如何使用for循環(huán) /省略聲明變量省略聲明變量 for(int i = 0; i 5; i+) /循環(huán)循環(huán)5次錄入次錄入5門課成績門課成績 System.out.print(請輸入請輸入5門功課中第門功課中第 + (i+1) + 門課的成績:門課的成績: ); score = input.nextInt(); sum = sum + score

4、; avg = sum / 5; /計算平均分計算平均分 System.out.println(name + 的平均分是:的平均分是: + avg);初始值:初始值:i= 0循環(huán)條件:循環(huán)條件:i5循環(huán)變量改變:循環(huán)變量改變:i+循環(huán)操作執(zhí)行循環(huán)操作執(zhí)行5次次演示示例:使用演示示例:使用for循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)/如何使用如何使用for循環(huán)循環(huán) 2、輸出如圖所示加法表for( int i = 0; i=num+i; i+, num- ) System.out.println(i + + + num + = + (i+num); 1、循環(huán)初始化:、循環(huán)初始化:i = 0;num = 輸入值輸入值2、

5、循環(huán)條件:、循環(huán)條件:i=輸入值輸入值3、循環(huán)操作:計算、循環(huán)操作:計算i+j4、循環(huán)變量的改變:、循環(huán)變量的改變:i+,j-表達(dá)式表達(dá)式3可以是用可以是用“,”隔開的多隔開的多個表達(dá)式,運(yùn)算順序從左到右個表達(dá)式,運(yùn)算順序從左到右演示示例演示示例2:使用:使用for循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)/for循環(huán)常見問題4-1for(;i10;i+) System.out.println(這是這是 +i);int i=0;編譯錯誤:編譯錯誤:變量變量 i 沒有初始化沒有初始化/for循環(huán)常見問題4-2for(int i=0;i+) System.out.println(這是這是 +i);編譯正確,但是缺少編譯正確

6、,但是缺少循環(huán)條件,造成死循環(huán)循環(huán)條件,造成死循環(huán)/for循環(huán)常見問題4-3for(int i=0;i10;) System.out.println(這是這是 +i); i+;省略表達(dá)式省略表達(dá)式3,在循環(huán)體內(nèi)應(yīng)設(shè)法改,在循環(huán)體內(nèi)應(yīng)設(shè)法改變循環(huán)變量的值以結(jié)束循環(huán)變循環(huán)變量的值以結(jié)束循環(huán)編譯通過,但是循環(huán)變量的編譯通過,但是循環(huán)變量的值無變化,造成死循環(huán)值無變化,造成死循環(huán)/for循環(huán)常見問題4-4for(;) System.out.println(這是測試這是測試);表達(dá)式全省略,無條件判斷,循環(huán)變量無改變,表達(dá)式全省略,無條件判斷,循環(huán)變量無改變,應(yīng)在循環(huán)體內(nèi)設(shè)法結(jié)束循環(huán),否則會造成死循環(huán)應(yīng)

7、在循環(huán)體內(nèi)設(shè)法結(jié)束循環(huán),否則會造成死循環(huán)死循環(huán)死循環(huán)/for each循環(huán)循環(huán)n又稱通用for循環(huán),可以用來依次處理數(shù)組或集合中的每個元素而不必為指定下標(biāo)值而分心。n語法:定義一個變量用于暫存集合中的每一個元素,并執(zhí)行相應(yīng)的語句塊。集合表達(dá)式必須是一個數(shù)組或是一個實現(xiàn)了Iterable接口的類對象。for(variable:collection)/語句塊/小結(jié)小結(jié)1 求1100之間不能被3整除的數(shù)之和 (使用for循環(huán)結(jié)構(gòu)) /為什么需要break語句int i = 2;switch(i) case 1: System.out.println(星期一星期一); break; case 2: S

8、ystem.out.println(星期二星期二); break; /其他語句其他語句遇到遇到break,立即跳出,立即跳出switch語句語句n回顧break用于switch語句n描述4000米長跑比賽for (int i = 0; i10; i+) 跑跑400米;米; if(不能堅持)(不能堅持) break; /退出比賽退出比賽 第第8圈,圈,快累死了快累死了我要退出我要退出/什么是什么是break語句語句nbreak:改變程序控制流用于do-while、while、for中時,可跳出循環(huán)而執(zhí)行循環(huán)后面的語句while() break; 跳出整個循環(huán)跳出整個循環(huán)break通常在循環(huán)中與通

9、常在循環(huán)中與條件語句一起使用條件語句一起使用/如何使用如何使用break語句語句2-1 3、循環(huán)錄入某學(xué)生5門課的成績并計算平均分,如果某分?jǐn)?shù)錄入為負(fù),停止錄入并提示錄入錯誤循環(huán)錄入成績,判斷錄入正確性:循環(huán)錄入成績,判斷錄入正確性:錄入錯誤,使用錄入錯誤,使用break語句立刻跳語句立刻跳出循環(huán);否則,累加求和出循環(huán);否則,累加求和演示示例演示示例3:使用:使用break語句語句/如何使用break語句2-2for(int i = 0; i 5; i+) /循環(huán)循環(huán)5次錄入次錄入5門課成績門課成績 System.out.print(請輸入請輸入5門功課中第門功課中第 + (i+1) + 門課

10、的成績:門課的成績: ); score = input.nextInt(); /從控制臺接收數(shù)據(jù)從控制臺接收數(shù)據(jù) if(score 0) wrong = false; /出錯標(biāo)識出錯標(biāo)識 break; /退出循環(huán)退出循環(huán) sum = sum + score;循環(huán)外的語句循環(huán)外的語句對錄入的分?jǐn)?shù)進(jìn)行判斷,如對錄入的分?jǐn)?shù)進(jìn)行判斷,如果小于果小于0,標(biāo)記出錯狀態(tài),并,標(biāo)記出錯狀態(tài),并立即跳出整個立即跳出整個for循環(huán)循環(huán)/為什么需要為什么需要continue 4、循環(huán)錄入Java課的學(xué)生成績,統(tǒng)計分?jǐn)?shù)大于等于 80分的學(xué)生比例1、通過循環(huán),獲得分?jǐn)?shù)大、通過循環(huán),獲得分?jǐn)?shù)大于等于于等于80分的學(xué)生人數(shù)

11、分的學(xué)生人數(shù)num2、判斷:如果成績、判斷:如果成績80,不,不執(zhí)行執(zhí)行num+,直接進(jìn)入下一,直接進(jìn)入下一次循環(huán)次循環(huán)/什么是什么是continue語句語句ncontinue :只能用在循環(huán)里ncontinue 作用:跳過循環(huán)體中剩余的語句而執(zhí)行下一次循環(huán)while() continue; 繼續(xù)下一次循環(huán)繼續(xù)下一次循環(huán)通常與條件語句一起使通常與條件語句一起使用,加速循環(huán)用,加速循環(huán)for(int i = 0; i10;i+) 跑跑400米;米; if(!口渴)(!口渴) continue; /不喝水,繼續(xù)跑不喝水,繼續(xù)跑 接過水壺,喝水接過水壺,喝水;示例示例/如何使用如何使用continu

12、e for(int i = 0; i total; i+) System.out.print(請輸入第請輸入第 + (i+1) + 位學(xué)生的成績:位學(xué)生的成績: ); score = input.nextInt(); if(score 80) continue; num+; /大于等于大于等于80分的人數(shù)分的人數(shù)double rate = (double) num / total * 100;System.out.println(80分以上的學(xué)生所占的比例為:分以上的學(xué)生所占的比例為:+ rate + %);對錄入的分?jǐn)?shù)進(jìn)行判斷,如對錄入的分?jǐn)?shù)進(jìn)行判斷,如果小于果小于80,跳出本次循環(huán),跳出本

13、次循環(huán),執(zhí)行下一次循環(huán)執(zhí)行下一次循環(huán)問題問題4完整代碼完整代碼/小結(jié)小結(jié)21.110之間的整數(shù)相加,得到累加值大于20的當(dāng)前數(shù) 2.求110之間的所有偶數(shù)和3.輸出1100之間的整數(shù),個位是7的和能被7整除的數(shù)除外/對比對比break和和continuen對比方法:通過Eclipse單步運(yùn)行,觀察程序執(zhí)行順序變量值的變化n觀察案例案例1:110之間的整數(shù)相加,得到累加值大于20的當(dāng)前數(shù) 案例2:求110之間的所有偶數(shù)和/小結(jié)小結(jié)3n說一說在循環(huán)中使用continue和break的區(qū)別? int sum=0;for( int i=0;i5;i+) if( i = 3) break; sum=su

14、m+i;System.out.println(sum = +sum);sum = 3sum = 7n輸出值是多少?如果將break替換成continue,輸出值又為多少?替換后替換后/循環(huán)結(jié)構(gòu)總結(jié)循環(huán)結(jié)構(gòu)總結(jié)2-1n到目前為止所學(xué)的循環(huán)結(jié)構(gòu)有哪些? 需要多次重復(fù)執(zhí)行一個或多個任務(wù)的問題考慮使用需要多次重復(fù)執(zhí)行一個或多個任務(wù)的問題考慮使用循環(huán)來解決循環(huán)來解決/循環(huán)總結(jié)循環(huán)總結(jié)2-2int i=0;int sum=0;while( i10 ) sum=sum+i; i+;int i=0;int sum=0;do sum=sum+i; i+;while(i10);int sum=0;for(int

15、i=0;i10;i+)sum=sum+i;123412341234while和和for相同,先進(jìn)行判斷,后執(zhí)行循環(huán)體內(nèi)容相同,先進(jìn)行判斷,后執(zhí)行循環(huán)體內(nèi)容do-while是先執(zhí)行,后判斷,至少執(zhí)行一次是先執(zhí)行,后判斷,至少執(zhí)行一次指出各種循環(huán)結(jié)構(gòu)的執(zhí)行順序指出各種循環(huán)結(jié)構(gòu)的執(zhí)行順序 /嵌套 while 循環(huán)q 嵌套 while 循環(huán)的語法while(i = 10) . . . while (i = j) . . . . . . . . .外循環(huán)內(nèi)循環(huán)只有在內(nèi)循環(huán)完全結(jié)束后,外循環(huán)才只有在內(nèi)循環(huán)完全結(jié)束后,外循環(huán)才會進(jìn)行下一趟。會進(jìn)行下一趟。/嵌套循環(huán)嵌套循環(huán)2-1問題1:用“*”輸出一個菱形圖

16、案 * * * * * * * * * * * * * * * * * * * * * * * * *int i, j, k;for (i = 0; i 4; i+) for (j = 0; j 3 - i; j+) System.out.print( ); for (k = 0; k 2 * i + 1; k+) System.out.print(*); System.out.print(n);for (i = 0; i 3; i+) for (j = 0; j i+1; j+) System.out.print( ); for (k = 0; k 5 - 2 * i; k+) System

17、.out.print(*); System.out.print(n);外層循環(huán)控制行數(shù)外層循環(huán)控制行數(shù)打印空格打印空格打印打印“*”換行換行/問題2:輸出100200之間所有的素數(shù)嵌套循環(huán)2-2int i, j, n;n = 0;for (i = 100; i = 200; i+) j = 2; while (i % j != 0)j+; if (i = j) System.out.print(i + t);n+;if (n % 8 = 0) System.out.println(); System.out.println();控制每行輸出控制每行輸出8個素數(shù)個素數(shù)如果第一個能被整除的數(shù)等于該數(shù)本身,如果第一個能被整除的數(shù)等于該數(shù)本身,則說明該數(shù)為素數(shù)則說明該數(shù)為素數(shù)從從2到

溫馨提示

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

最新文檔

評論

0/150

提交評論