![Java程序設(shè)計語言:第4章 循環(huán)結(jié)構(gòu)程序設(shè)計_第1頁](http://file4.renrendoc.com/view/9b1b7421d79fbdf43b6f2e240fe66cae/9b1b7421d79fbdf43b6f2e240fe66cae1.gif)
![Java程序設(shè)計語言:第4章 循環(huán)結(jié)構(gòu)程序設(shè)計_第2頁](http://file4.renrendoc.com/view/9b1b7421d79fbdf43b6f2e240fe66cae/9b1b7421d79fbdf43b6f2e240fe66cae2.gif)
![Java程序設(shè)計語言:第4章 循環(huán)結(jié)構(gòu)程序設(shè)計_第3頁](http://file4.renrendoc.com/view/9b1b7421d79fbdf43b6f2e240fe66cae/9b1b7421d79fbdf43b6f2e240fe66cae3.gif)
![Java程序設(shè)計語言:第4章 循環(huán)結(jié)構(gòu)程序設(shè)計_第4頁](http://file4.renrendoc.com/view/9b1b7421d79fbdf43b6f2e240fe66cae/9b1b7421d79fbdf43b6f2e240fe66cae4.gif)
![Java程序設(shè)計語言:第4章 循環(huán)結(jié)構(gòu)程序設(shè)計_第5頁](http://file4.renrendoc.com/view/9b1b7421d79fbdf43b6f2e240fe66cae/9b1b7421d79fbdf43b6f2e240fe66cae5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第4章循環(huán)結(jié)構(gòu)程序設(shè)計Java程序設(shè)計2學(xué)習(xí)目標熟練掌握while、do-while、for語句基本結(jié)構(gòu)的概念和使用方法掌握循環(huán)嵌套的概念和使用掌握正確使用break和continue語句Java程序設(shè)計34.1循環(huán)結(jié)構(gòu)解決的問題實際編程中有很多需要多次重復(fù)相同或相似的操作的問題,幾乎每一種高級程序設(shè)計語言都提供循環(huán)控制語句來處理重復(fù)操作。如:向計算機系統(tǒng)輸入100個學(xué)生的檔案,重復(fù)進行100次輸入操作。為全班30個學(xué)生分別計算其5門課的平均成績,重復(fù)進行30次求平均數(shù)的算術(shù)運算。求1+2+3+…+100的和,重復(fù)進行100次加法操作。檢查100名畢業(yè)生是否具有獲得學(xué)位證書的資格,重復(fù)進行100次判斷操作。Java語言提供標準的三種循環(huán)控制語句:while語句、do-while語句和for語句。Java程序設(shè)計44.1循環(huán)結(jié)構(gòu)解決的問題4.2while語句
while循環(huán)語句的語法結(jié)構(gòu)如下:while(循環(huán)繼續(xù)條件)
循環(huán)語句while循環(huán)的執(zhí)行流程Java程序設(shè)計54.2while語句while語句使用時需要注意的方面(1)while語句的循環(huán)體只能包含一條語句,當循環(huán)體需要多條語句組成時,使用語句塊。
while(i<100)while(i<100)i=i+1;{sum=sum+i;i=i+1;}(2)循環(huán)必須在重復(fù)有限的次數(shù)后結(jié)束,因此要求循環(huán)體中應(yīng)該包含使循環(huán)繼續(xù)條件最終變?yōu)閒alse的語句。
while(i<100){i=i+1;}Java程序設(shè)計64.2while語句例4-1:求1+2+3+…+100的值,使用while語句。//文件名:GaussProblemWithWhile.javapublicclassGaussProblemWithWhile{publicstaticvoidmain(String[]args){
inti=1;//變量i存儲參加累加的數(shù),初始值為1
intsum=0;//變量sum存儲和,初始值為0
while(i<=100){sum=sum+i;//累加運算i++;//i增加1,為下次累加準備,同時也使循環(huán)繼續(xù)條件最終會變成false}
//循環(huán)結(jié)束后,執(zhí)行后面語句,輸出結(jié)果
System.out.println("sum="+sum);}}Java程序設(shè)計74.3do-while語句do-while循環(huán)語句的語法格式:do
循環(huán)語句while(循環(huán)繼續(xù)條件);do-while循環(huán)的執(zhí)行流程Java程序設(shè)計84.3do-while語句do-while語句使用時需要注意的方面(1)注意do-while語句的最后的分號表示語句結(jié)束,不能省略。
(2)每次迭代都是先執(zhí)行循環(huán)體,再計算循環(huán)繼續(xù)條件的值,若值為true,則執(zhí)行循環(huán)體;若值為false,則整個循環(huán)結(jié)構(gòu)終止,程序繼續(xù)執(zhí)行do-while語句后面的語句。do{sum=sum+i;i++;}while(i<=100);Java程序設(shè)計94.4for語句for循環(huán)語句的語法格式:for(初始操作;循環(huán)繼續(xù)條件;每次迭代后的操作)for循環(huán)的執(zhí)行流程Java程序設(shè)計104.4for語句for語句執(zhí)行流程對其各個組成部分進行說明(1)for語句總是從初始操作開始執(zhí)行的。改部分可以聲明變量,但是這些變量只能在for語句內(nèi)部使用;主要完成循環(huán)變量的初始化。(2)循環(huán)繼續(xù)條件是boolean類型的表達式。在初始操作部分執(zhí)行完成或每一次迭代結(jié)束后需要計算該表達式的值,若為true則循環(huán)繼續(xù),否則終止整個循環(huán)結(jié)構(gòu)。(3)循環(huán)體也只能有一條語句,需要多條語句時使用語句塊。(4)每次迭代后的操作在循環(huán)體每次迭代后都要執(zhí)行。主要完成循環(huán)變量值的修改。Java程序設(shè)計114.4for語句例4-3:求1+2+3+…+100的值,使用for語句。//文件名:GaussProblemWithFor.javapublicclassGaussProblemWithFor{publicstaticvoidmain(String[]args){
intsum=0;for(inti=1;i<=100;i++){sum+=i;}
System.out.println("sum="+sum);}}Java程序設(shè)計124.5循環(huán)語句的比較while循環(huán)和for循環(huán)的循環(huán)繼續(xù)條件的檢查是在循環(huán)體執(zhí)行之前進行的,稱為前置檢測循環(huán),循環(huán)體執(zhí)行次數(shù)最少為0次;do-while循環(huán)的循環(huán)繼續(xù)條件的檢查是在循環(huán)體執(zhí)行之后進行的,稱為后置檢測循環(huán),循環(huán)體執(zhí)行次數(shù)最少為1次。三種循環(huán)語句都可以用來處理相同的需要進行重復(fù)操作的問題,一般情況下三者之間可以相互替換。Java程序設(shè)計134.5循環(huán)語句的比較編寫程序處理循環(huán)結(jié)構(gòu)時,選擇哪一種循環(huán)語句沒有嚴格規(guī)定。常用規(guī)則如下:如果循環(huán)次數(shù)已經(jīng)知道的情況使用for語句;循環(huán)次數(shù)不確定的情況使用while語句;如果需要在檢查循環(huán)繼續(xù)條件之前執(zhí)行循環(huán)體,則使用do-while語句。Java程序設(shè)計144.5循環(huán)語句的比較三種循環(huán)語句中do-while語句的后面必須使用分號結(jié)束。同時必須注意for語句和while語句循環(huán)繼續(xù)條件的括號后面不能加分號,如果不留意加了分號,可能不會有語法錯誤,但程序的執(zhí)行與預(yù)期的結(jié)果就不同了。4.6循環(huán)嵌套
一個循環(huán)語句的循環(huán)體內(nèi)包含另一個完整的循環(huán)結(jié)構(gòu),稱為循環(huán)的嵌套。循環(huán)的嵌套可以有很多層,一個循環(huán)的內(nèi)嵌一層循環(huán)叫雙層循環(huán)嵌套,簡稱雙重循環(huán);如果在雙重循環(huán)的內(nèi)層循環(huán)中再內(nèi)嵌一層循環(huán)就形成了三重循環(huán)。循環(huán)嵌套在理論上來說可以是無限的,可以形成多重循環(huán)。Java程序設(shè)計164.6循環(huán)嵌套
例4-4:在命令行窗口輸出九九乘法表。Java程序設(shè)計174.6循環(huán)嵌套
程序源碼://文件名:MultiplicationTable.javapublicclassMultiplicationTable{publicstaticvoidmain(String[]args){
inti,j;//表示乘數(shù)、j表示被乘數(shù)for(i=1;i<=9;i++){//外層循環(huán)控制輸出行,第i次循環(huán)輸出第i行for(j=1;j<=i;j++){//內(nèi)層循環(huán)控制輸出乘法等式,第i行有i個等式
System.out.printf("%d*%d=%2d",i,j,i*j);//輸出一個乘法等式}
System.out.println();//一行輸出結(jié)束,輸出換行}}}Java程序設(shè)計184.7break和continue語句
循環(huán)語句在執(zhí)行時,預(yù)先設(shè)定的循環(huán)繼續(xù)條件的值為true循環(huán)體就完整執(zhí)行一次,直到該條件值變?yōu)閒alse時終止循環(huán),這稱為循環(huán)的正常執(zhí)行。程序設(shè)計過程中有時會需要提前終止循環(huán),或者跳過某次迭代中的部分語句直接進入下一次迭代。break語句和continue語句就是用于提前終止循環(huán)或提前結(jié)束循環(huán)的某次迭代。Java程序設(shè)計194.7.1break語句
break語句可以用于switch語句和循環(huán)語句中用于跳出switch語句或者提前終止循環(huán)。break語句用于循環(huán)語句的語法格式如下:break[語句標號];方括號表示其中的語句標號是可選的,語句標號的定義形式是一個合法的Java標識符后面加上一個冒號,通常放在循環(huán)語句的前面,用以指明它代表該循環(huán)語句。Java程序設(shè)計204.7.1break語句
Java程序設(shè)計214.7.1break語句
Java程序設(shè)計224.7.1break語句
Java程序設(shè)計23例4-5:判斷正整數(shù)是否為質(zhì)數(shù)。從鍵盤輸入一個正整數(shù),判斷并輸出是否為質(zhì)數(shù)。
解題思路:根據(jù)質(zhì)數(shù)的定義,除1和本身外不能被其他整數(shù)整除的整數(shù)。因此對任意的正整數(shù)n,只需要從2開始到n-1結(jié)束,依次嘗試n是否被某個數(shù)整除即可??梢韵燃僭O(shè)n是質(zhì)數(shù),若找到一個數(shù)i使n%i==0,則確定n不是質(zhì)數(shù),此時從i+1到n-1的數(shù)就不需要嘗試了,可以提前結(jié)束循環(huán)。4.7.1break語句
Java程序設(shè)計24importjava.util.Scanner;publicclassPrime{publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);
intn=input.nextInt();
boolean
isPrime=true;//假設(shè)n是質(zhì)數(shù)for(inti=2;i<n;i++){if(n%i==0){//如果條件成立,表示找到可以整除的數(shù)
isPrime=false;//確定n不是質(zhì)數(shù)break;//提前結(jié)束循環(huán)}}if(isPrime){
System.out.println(n+"是質(zhì)數(shù).");}else{
System.out.println(n+"不是質(zhì)數(shù).");}}}4.7.2continue語句
Java程序設(shè)計25continue語句實現(xiàn)提前結(jié)束循環(huán)的本次迭代,直接進入下一次迭代,其語法形式為:continue[語句標號];continue語句的語句標號使用方法與break語句相同。continute語句的作用是提前結(jié)束語句標號指明的循環(huán)的本次迭代,即跳過continue語句后面直到循環(huán)體末尾的所有語句,直接去重新判斷循環(huán)繼續(xù)條件,再決定是否開始下一次迭代。省略語句標號時針對包括continue語句的最內(nèi)層循環(huán)。4.7.2continue語句
Java程序設(shè)計264.7.2continue語句
Java程序設(shè)計274.7.2continue語句
Java程序設(shè)計28例4-7:輸出100至200之間不能被7整除的數(shù)。
解題思路:很明顯需要從100開始到200為止,依次對每個整數(shù)進行檢查能否被7整除,如果能夠被7整除則跳過輸出,直接檢查下一個數(shù);不能整除時輸出。其中跳過輸出的操作可以由continue語句完成。4.7.2continue語句
Java程序設(shè)計29程序源碼://文件名:OutputNumber.javapublicclassOutputNumber{publicstaticvoidmain(String[]args){//依次檢查100~200的每個數(shù)for(inti=100;i<=200;i++){if(i%7==0){continue;//如果被7整除,跳過下面的輸出語句}
System.out.println(i);}}}4.8循環(huán)結(jié)構(gòu)程序舉例
Java程序設(shè)計30例4-8:求Fibonacci數(shù)列的前20個數(shù)。該數(shù)列的特點:前兩個數(shù)F1和F2均為1,從第3個數(shù)開始,F(xiàn)n=Fn-1+Fn-2。
解題思路:要解決該問題,很明顯需要使用循環(huán)結(jié)構(gòu),循環(huán)體中重復(fù)執(zhí)行的是利用前2個數(shù)之和計算后面數(shù)。設(shè)f1表示第1個數(shù),f2表示第2個數(shù),則f3=f1+f2為第3個數(shù);然后將f2賦給f1,f3賦給f2,則f1表示第2個數(shù),f2表示第3個數(shù),則f3=f1+f2為第4個數(shù),依次類推。//文件名:Fibonacci.javapublicclassFibonacci{publicstaticvoidmain(String[]args){
intf1=1,f2=1,f3;//先輸出前2個數(shù)
System.out.println(f1);System.out.println(f2);//循環(huán)計算并輸出后面18個數(shù)
for(inti=0;i<18;i++){f3=f1+f2;//計算下個數(shù)
System.out.println(f3);//輸出下個數(shù)
f1=f2;f2=f3;//為下次計算準備
}}}4.8循環(huán)結(jié)構(gòu)程序舉例
Java程序設(shè)計32例4-9:求用數(shù)字0~9可以組成多少個沒有重復(fù)的三位奇數(shù),并輸出這些三位數(shù)。解題思路:該問題的解決需要將所有滿足條件的可能情況全部列出來,需要用循環(huán)嵌套來處理,對百位、十位、個位分別采用循環(huán)。按照題意,百位數(shù)字的變化范圍是1-9,十位數(shù)字的變化范圍是0-9,個位數(shù)字的變化范圍是1-9,由于題目要求是奇數(shù),所以個位的處理每次遞增為2。publicclassDigitCombination{publicstaticvoidmain(String[]args){
inti,j,k;intcounter=0;//外層循環(huán)控制百位數(shù)的變化
for(i=1;i<=9;i++){//中間循環(huán)控制十位數(shù)變化
for(j=0;j<=9;j++){if(i!=j){//只有在百位數(shù)與十位數(shù)不同時才考慮個位數(shù)
//最內(nèi)層循環(huán)控制個位數(shù)變化
for(k=1;k<=9;k=k+2){if(i!=k&&j!=k){//個位數(shù)與百、十都不同時
//輸出該三位數(shù)
System.out.println(i*100+j*10+k);counter++;//滿足條件的三位數(shù)的個數(shù)加1}}}}}
System.out.println("conuter="+counter);}}4.8循環(huán)結(jié)構(gòu)程序舉例
Java程序設(shè)計34例4-10:使用下列公式計算π的近似值,直到某一項的絕對值小于10-6為止。
解題思路:這是利用級數(shù)公式近似計算某個特定值的典型實例。計算結(jié)果的精度取決于累加項數(shù)越多,精度越好。因此該題目
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 施工現(xiàn)場施工許可證制度
- 施工日志填寫樣本的格式要求
- 設(shè)計思維在醫(yī)療技術(shù)創(chuàng)新中的應(yīng)用
- 智能科技在家校互動中的應(yīng)用與前景展望
- DB4415T 50-2025黑芝麻種植技術(shù)規(guī)程
- 個人貸款合同協(xié)議書范本
- 親屬間房產(chǎn)贈與合同
- 二手建筑設(shè)備買賣合同樣本
- 乒乓球館租賃合同書范本
- 不可撤銷勞動合同案例析:勞動者權(quán)益保障
- 糖尿病足的多學(xué)科聯(lián)合治療
- 小龍蝦啤酒音樂節(jié)活動策劃方案課件
- 運動技能學(xué)習(xí)與控制課件第五章運動中的中樞控制
- 財務(wù)部規(guī)范化管理 流程圖
- 蘇教版2023年小學(xué)四年級數(shù)學(xué)下冊教學(xué)計劃+教學(xué)進度表
- 小學(xué)作文指導(dǎo)《難忘的一件事》課件
- 斷絕關(guān)系協(xié)議書范文參考(5篇)
- 量子力學(xué)課件1-2章-波函數(shù)-定態(tài)薛定諤方程
- 最新變態(tài)心理學(xué)課件
- 【自考練習(xí)題】石家莊學(xué)院概率論與數(shù)理統(tǒng)計真題匯總(附答案解析)
- 農(nóng)村集體“三資”管理流程圖
評論
0/150
提交評論