第5章累加與階乘-循環(huán)結(jié)構(gòu)_第1頁(yè)
第5章累加與階乘-循環(huán)結(jié)構(gòu)_第2頁(yè)
第5章累加與階乘-循環(huán)結(jié)構(gòu)_第3頁(yè)
第5章累加與階乘-循環(huán)結(jié)構(gòu)_第4頁(yè)
第5章累加與階乘-循環(huán)結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第5章累加與階乘——循環(huán)結(jié)構(gòu)能力目標(biāo):學(xué)會(huì)使用for、while和do-while循環(huán)語(yǔ)句,理解遞歸調(diào)用方法。學(xué)會(huì)使用加賦值、乘賦值等復(fù)合賦值運(yùn)算符。能運(yùn)用循環(huán)結(jié)構(gòu)編寫計(jì)算累加、階乘以及乘法表等應(yīng)用程序。1內(nèi)容介紹5.1任務(wù)預(yù)覽5.2while語(yǔ)句5.3復(fù)合賦值運(yùn)算符5.4for語(yǔ)句5.5遞歸調(diào)用方法5.6do-while語(yǔ)句5.7break和continue語(yǔ)句5.8多重循環(huán)5.9本章小結(jié)5.10實(shí)訓(xùn)5:累加、階乘與乘法表25.1任務(wù)預(yù)覽-1

本章實(shí)訓(xùn)程序運(yùn)行結(jié)果:

35.1任務(wù)預(yù)覽-2

45.1任務(wù)預(yù)覽-3

55.2while語(yǔ)句循環(huán)語(yǔ)句有3個(gè):while、for和do-while。while循環(huán)語(yǔ)句的語(yǔ)法形式如下:while(條件表達(dá)式)

循環(huán)體6while(0<i<100){}right?while(0<i&&i<100){}if(0<i&&i<100){}【例5-1】編程,計(jì)算1到10的累加,

即1+2+3+…+10?!?intsum=0; inti=1; while(i<=10){

sum=sum+i; System.out.printf("1到%d的累加結(jié)果:%d\n",i,sum); i++; } System.out.printf("最后結(jié)果:%d",sum);…算法描述:(1)0?sum(2)1?i(3)當(dāng)i≤10時(shí),執(zhí)行下一步,否則跳轉(zhuǎn)到步驟(8)(4)sum+i?sum(5)輸出中間結(jié)果sum(6)i+1?i(7)轉(zhuǎn)回步驟(3)(8)輸出最后結(jié)果sum。75.3復(fù)合賦值運(yùn)算符復(fù)合賦值運(yùn)算符有:

+=-=*=/=%=&=|=^= <<=>>=>>>=如:sum+=i相當(dāng)于sum=sum+i又如:

Stringstr="We"; str+="are"; str+="students."; System.out.println(str);執(zhí)行上述語(yǔ)句,將輸出:Wearestudents.8i++

<=>i+=1i--

<=>I-=15.4for語(yǔ)句for(變量初始化;條件表達(dá)式;循環(huán)變量更新)循環(huán)體for(;;){…}for(inti=1,j=10;i<=j;i++,j--){…}9【例5-2】編程,使用for語(yǔ)句計(jì)算1到10的累加。publicclassExample2{ publicstaticvoidmain(String[]args){ intsum=0; for(inti=1;i<=10;i++){ sum+=i;//加賦值運(yùn)算

System.out.printf("1到%d的累加結(jié)果:%d\n",i,sum); } System.out.printf("最后結(jié)果:%d",sum); }}10【例5-3】階乘程序1:使用for循環(huán)語(yǔ)句計(jì)算10的階乘。publicclassExample3{ publicstaticvoidmain(String[]args){intfactorial=1; for(inti=1;i<=10;i++){ factorial*=i;//乘賦值運(yùn)算

System.out.printf("%d的階乘:%d\n",i,factorial); } System.out.printf("最后結(jié)果:%d",factorial); }}11long,int【例5-4】階乘程序2:使用方法調(diào)用計(jì)算10的階乘。publicclassExample4{

staticlongcalcFactorial(intn){//計(jì)算n的階乘方法

longfactorial=1; for(inti=n;i>=1;i--){ factorial*=i; } returnfactorial; }

publicstaticvoidmain(String[]args){ System.out.printf("最后結(jié)果:%d",calcFactorial(10)); //調(diào)用階乘方法

}}125.5遞歸調(diào)用方法數(shù)學(xué)上用n!表示n的階乘,數(shù)學(xué)公式如下:

n?。絥×(n-1)?。ㄈ鬾>1)

n?。?(若n=1)【例5-5】階乘程序3:使用遞歸調(diào)用方法計(jì)算10的階乘。

publicclassExample5{ staticlongcalcFactorial(intn){//遞歸方法

if(n>1){returnn*calcFactorial(n-1);}//遞歸調(diào)用

else{return1;} } publicstaticvoidmain(String[]args){ System.out.printf("最后結(jié)果:%d",calcFactorial(10)); }}13【例5-6】使用遞歸調(diào)用編寫計(jì)算f(n)的方法,并調(diào)用方法計(jì)算f(6)、f(7)、f(8)的值。其中,f(n)=f(n-1)+f(n-2)(若n≥3)

f(n)=1(若n<3)publicclassExample6{ staticintf(intn){//遞歸調(diào)用方法

if(n>=3){returnf(n-1)+f(n-2);} else{return1;} } publicstaticvoidmain(String[]args){ System.out.printf("f(%d)=%d\n",6,f(6)); System.out.printf("f(%d)=%d\n",7,f(7)); System.out.printf("f(%d)=%d\n",8,f(8)); }}14如果不使用遞歸呢?5.6do-while語(yǔ)句do

循環(huán)體while(條件表達(dá)式);【例5-7】編程,使用do循環(huán)語(yǔ)句計(jì)算1到10的累加。publicclassExample7{ publicstaticvoidmain(String[]args){ intsum=0; inti=1; do{ sum+=i; System.out.printf("1到%d的累加結(jié)果:%d\n",i,sum); i++; }while(i<=10); System.out.printf("最后結(jié)果:%d",sum); }155.7break和continue語(yǔ)句break可跳出多分支語(yǔ)句switch和循環(huán)語(yǔ)句。continue只能用于循環(huán)語(yǔ)句,結(jié)束本輪、繼續(xù)下輪循環(huán)。【例5-8】編程,求1到10的累加,要求使用break和continue語(yǔ)句。… intsum=0; inti=1; while(true){ sum+=i; System.out.printf("1到%d的累加結(jié)果:%d\n",i,sum); i++; if(i<=10){continue;} else{break;} } System.out.printf("最后結(jié)果:%d",sum);…16【例5-9】編程,計(jì)算1到20中除5、15以外的所有奇數(shù)的平方,但若平方值超過300,則終止。publicclassExample9{ publicstaticvoidmain(String[]args){ intsquare; for(inti=1;i<=20;i+=2){ if(i==5||i==15){continue;} square=i*i; if(square>300){break;} System.out.printf("%d的平方:%d\n",i,square); } }}175.8多重循環(huán)二重以上的循環(huán)就是多重循環(huán)?!纠?-10】編程,使用二重循環(huán),輸出8行4列的表格。publicclassExample10{ publicstaticvoidmain(String[]args){ for(inti=1;i<=8;i++){//i控制行

for(intj=1;j<=4;j++){//j控制列

System.out.printf("%d行%d列",i,j); } System.out.println();//換行

} }}18【例5-11】編程,使用二重循環(huán),計(jì)算并輸出乘法表。publicclassExample11{ publicstaticvoidmain(String[]args){ for(inti=1;i<=9;i++){//i控制行

for(intj=1;j<=9;j++){//j控制列

System.out.printf("%d×%d=%2d",j,i,j*i); } System.out.println();//換行

} }}195.9本章小結(jié)編寫循環(huán)結(jié)構(gòu)主要使用循環(huán)語(yǔ)句。Java有3個(gè)循環(huán)語(yǔ)句:while、for和do-while。其中for語(yǔ)句使用頻率最多。一些遞歸形式的數(shù)學(xué)函數(shù)或公式,除了使用循環(huán)語(yǔ)句,也可以運(yùn)用遞歸調(diào)用方法進(jìn)行編程。實(shí)質(zhì)上遞歸調(diào)用隱含了循環(huán)結(jié)構(gòu)。復(fù)合賦值運(yùn)算符如加賦值、乘賦值等,這些運(yùn)算符把兩種運(yùn)算合并成一種,顯得非常簡(jiǎn)練。可在循環(huán)語(yǔ)句中使用加賦值進(jìn)行累加運(yùn)算。使用break語(yǔ)句終止循環(huán)語(yǔ)句。要中止本次循環(huán)而繼續(xù)下一輪循環(huán),則使用continue語(yǔ)句。循環(huán)語(yǔ)句也可相互嵌套,形成多重循環(huán),如二重循環(huán)。205.10實(shí)訓(xùn)5:累加

溫馨提示

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

評(píng)論

0/150

提交評(píng)論