Java程序設(shè)計流程控制2_第1頁
Java程序設(shè)計流程控制2_第2頁
Java程序設(shè)計流程控制2_第3頁
Java程序設(shè)計流程控制2_第4頁
Java程序設(shè)計流程控制2_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Java程序設(shè)計第四章流程控制2學(xué)習(xí)目標(biāo)理解程序控制的概念運用條件語句,使用if,switch來控制程序的不同執(zhí)行路徑掌握for、while和do句型結(jié)構(gòu)控制程序的循環(huán)執(zhí)行理解并能應(yīng)用break和continue調(diào)整程序中的流程控制結(jié)構(gòu)。理解分支和循環(huán)的影響語句范圍理解變量的生存范圍理解并使用斷言對程序進行調(diào)試3程序程序表現(xiàn)為完成某個功能(目標(biāo))而編寫的指令集合。構(gòu)成程序的基本元結(jié)構(gòu)是順序、分支和循環(huán)在整體上,程序運行是按照事先編寫的指令(語句)從前到后的順序執(zhí)行,但在執(zhí)行的過程中,經(jīng)常會遇到基于不同條件的決策來執(zhí)行不同的指令,抑或重復(fù)執(zhí)行事先定義的指令來達到某種目的,但總體上程序總是順序執(zhí)行的。4一個例子編寫一個程序,聲明3個整型變量,用來保存3個學(xué)生的考試分數(shù),計算他們的平均分(float類型)并輸出。5進一步的如果某個學(xué)生的成績低于60分,則不參與平均分計算。6在進一步如果有50個學(xué)生的成績已經(jīng)保存在一個整型數(shù)組中,同樣基于上面規(guī)則來計算這批學(xué)生的平均分。74.1句、塊和空白構(gòu)成Java程序的最小單位是類,而類則是由屬性和方法構(gòu)成。方法代表了某個具體的能力,具體的一個方法就是由為完成某個功能而編寫的若干條語句組成。84.1.1語句在Java編程語言中,語句是一行由分號(;)終止的代碼,它是一個完整的可執(zhí)行單元。例如:totals=a+b+c+d+e+f;與下式相同

total=a+b+c+d+e+f;9在Java中,主要有以下的語句類型聲明語句inta=0;//聲明了一個整型變量Studentstu;//聲明了一個類型是Student的對象表達式語句賦值表達式,自增表達式、方法調(diào)用、對象創(chuàng)建都可以和分號一起構(gòu)成“表達式語句”System.out.println(“Welcome”);//輸出字符串a(chǎn)=Math.abs(-3.1);//返回絕對值value=100;//為變量賦值a++;//a自增Studentstu=newStudent(“張華”);//創(chuàng)建一個Student類的實例,實例引用名為stu控制語句104.1.2語句塊一個塊(block)或一個復(fù)合語句是以上括號和下括號為邊界的語句集合;塊語句也被用來組合屬于某個類的語句。語句塊可被嵌套。//ablock語句{x=y+1;y=x+1;}11//類聲聲明明所所包包含含的的塊塊語語句句publicclassMyDate{intday;intmonth;intyear;}12//一個個嵌嵌套套塊塊語語句句的的例例子子while(i<large){//循環(huán)環(huán)語語句句快快開開始始,,用用"{"表示示a=a+i;if(a==max){//判斷斷語語句句快快開開始始,,用用"{"表示示b=b+a;a=0;}//判斷斷語語句句塊塊結(jié)結(jié)束束,,用用"}"表示示}//循環(huán)環(huán)語語句句快快結(jié)結(jié)束束,,用用"}"表示示134.1.3空白白在源源代代碼碼元元素素之之間間允允許許空空白白,,空空白白的的數(shù)數(shù)量量不不限限。??湛瞻装?包括括空空格格、、tabs和新新行行)可以以改改善善源源代代碼碼的的視視覺覺感感受受。。{intx;x=23+54;}{intxx=23+54;}144.2順序序結(jié)結(jié)構(gòu)構(gòu)順序序結(jié)結(jié)構(gòu)構(gòu)程序序語語句句間間最最簡簡單單的的結(jié)結(jié)構(gòu)構(gòu)關(guān)關(guān)系系是是順順序序結(jié)結(jié)構(gòu)構(gòu),,也也就就是是語語句句是是按按照照它它們們在在方方法法中中出出現(xiàn)現(xiàn)的的先先后后順順序序逐逐一一被被執(zhí)執(zhí)行行。。publicclassSwap{publicstaticvoidmain(String[]args){inta=10,b=20;intt=0;t=a;a=b;b=t;System.out.println("a="+a);System.out.println("b="+b);}}154.3選擇結(jié)構(gòu)構(gòu)程序控制制可以定定義為對對程序語語句的執(zhí)執(zhí)行順序序進行的的規(guī)定。。Java提供了條條件語句句在兩種種或更多多的情況況做出選選擇,根根據(jù)情況況執(zhí)行不不同的程程序語句句;164.3.1條件判斷斷與決策策1if,else語句簡單的單單分支語語句if(布爾表達達式){語句或塊塊;}例如if(score<60){System.out.println(“下次努力力哦!”);}174.3.1條件判斷斷與決策策(cont.)簡單的雙雙分支語語句if(布爾表達達式){語句或塊塊;}else{語句或塊塊;}例如if(score<60){System.out.println(“下次努力力哦!”);}else{System.out.println(“恭喜你通通過考試試!”);}18expBAFT選擇結(jié)構(gòu)194.3.1條件判斷斷與決策策(cont.)嵌套的if,elseif(布爾表達達式1){語句或塊塊;}elseif(布爾表達達式2){語句或塊塊;}else{語句或塊塊;}20例如if((score<60){System.out.println(“下次次努力哦哦!”);}elseif(score<80){System.out.println(“恭喜喜你通過過考試!”);}else{System.out.println(“你考考的很棒棒!”);}21課堂練習(xí)習(xí)(c.)指出輸出出結(jié)果x=2;y=3;if(x>2){if(y>2){intz=x+y;System.out.println(“zis””+z);}}elseSystem.out.println(“xis””+x);224.3.1條件判斷斷與決策策(cont.)2switch語句switch語句允許許程序員員更多情情況下選選擇不同同的程序序邏輯,,當(dāng)情況況發(fā)生時時,按照照事先準(zhǔn)準(zhǔn)備好的的方法執(zhí)執(zhí)行。switch語句的句句法是::switch(expr1){caseexpr2:statements;break;caseexpr3:statements;break;default:statements;}23chargender;//性別別…….switch((gender){case‘F’:case‘f’:System.out.println(”女性性“);break;case‘M’:case‘m’:System.out.println(”男性性“);break;}24表達式的的類型在switch(expr1)語句中,,expr1必須與int類型是賦賦值兼容容的;byte,short或char類型可被被升級;;不允許許使用浮浮點或long表達式。。從7開始,增增加了String類型。在switch(expr1)語句中中,expr1也可以以是枚枚舉類類型publicenumMonth{JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER}breakbreak的作用用是停停止switch的執(zhí)行行,退退出,,執(zhí)行行switch代碼段段后的的程序序。如果沒沒有break語句作作為某某一個個case代碼段段的結(jié)結(jié)束句句,則則程序序的執(zhí)執(zhí)行將將繼續(xù)續(xù)到下下一個個case,而不不檢查查case表達式式的值值。25TA1Fexp=1TA2Fexp=2…TAnFexp=n多分支結(jié)構(gòu)26課堂練練習(xí)指出輸輸出結(jié)結(jié)果x=2;y=3;if(x>2)if(y>2){intz=x+y;System.out.println(“zis””+z);}elseSystem.out.println(“xis””+x);27課堂練練習(xí)(c.)執(zhí)行下下列switch語句后后y是多少少?x=3;switch(x+3){case6:y=1;default:y+=1;}switch中中的default本質(zhì)是是一種種特殊殊匹配配變量或或表達達式的的值不不能與與任何何case值相匹匹配時時,可可選缺缺省符符(default)指出出了應(yīng)應(yīng)該執(zhí)執(zhí)行的的程序序代碼碼。位置default語句一一般在在switch語句的的最后后。注意如果匹匹配到到了default,并且且default后還有有其他他的case,則繼繼續(xù)執(zhí)執(zhí)行,,且忽忽略是是否匹匹配2829課堂練練習(xí)(c.)有一個個函數(shù)數(shù)如下下,根根據(jù)指指定的的x,輸出出y值y=Xx<12X-11<=x<103X-11x>=10寫出程程序,,根據(jù)據(jù)給出出的百百分制制成績績,輸輸出成成績等等級’A’、’B’、’C’、’D’、’E’,90分以上上為A,80~89為B,70~79為C,60~69為D,60分以下下為E。30課堂練練習(xí)(c.)編寫一一個程程序,,根據(jù)據(jù)命令令行參參數(shù)將將對應(yīng)應(yīng)的mon、tue、wed、thu、fri、sat、sun分別輸輸出為為星期期一、、星期期二….星期日日,如如:>JavaWeekDaymon>星期一一31思考題題如何提提高多多分支支下的的程序序執(zhí)行行效率率?324.4循環(huán)循環(huán)語語句使使語句句或塊塊的執(zhí)執(zhí)行得得以重重復(fù)進進行。。Java編程語語言支支持三三種循循環(huán)構(gòu)構(gòu)造類類型::for,while和do循環(huán)。。for和while循環(huán)是是在執(zhí)執(zhí)行循循環(huán)體體之前前測試試循環(huán)環(huán)條件件do循環(huán)是是在執(zhí)執(zhí)行完完循環(huán)環(huán)體之之后測測試循循環(huán)條條件。。這就意意味著著for和while循環(huán)可可能連連一次次循環(huán)環(huán)體都都未執(zhí)執(zhí)行,,而而do循環(huán)將將至少少執(zhí)行行一次次循環(huán)環(huán)體。。33FSTexp直到型循環(huán)當(dāng)型循環(huán)TexpSF34for循環(huán)的的句法法是::for(init_expr;booleantestexpr;alter_expr){statementorblock}例如::for(inti=0;i<10;i++){System.out.println("i="+i);}35while循環(huán)的句法法:while(布爾表達式式){語句或塊}inti=0;while(i<10){System.out.println("i="+i);i++;}System.out.println("Finally!");36do循環(huán)的句法法是:do{語句或塊;;}while(布爾測試)inti=0;do{System.out.println("i="+i);i++;}while(i<10);System.out.println("Finally!");37思考題怎么決定使使用哪類循循環(huán)?38循環(huán)的嵌套套在一個循環(huán)環(huán)體內(nèi)又包包含了另一一個完整的的循環(huán)結(jié)構(gòu)構(gòu),成為嵌嵌套循環(huán)。。如:while(循環(huán)條條件){[語句;]while(循環(huán)環(huán)條件){[語句;]}[語句;]}394.4.4跳轉(zhuǎn)下列語句可可被用在更更深層次的的控制循環(huán)環(huán)語句中::break[標(biāo)注];;continue[標(biāo)注];;label:語句;Label:被用來標(biāo)識識循環(huán)構(gòu)造造的復(fù)合語語句。break語句被用來從switch語句、for語句等循環(huán)環(huán)語句的塊塊中退出到到預(yù)先設(shè)定定的label處。當(dāng)程序序運行到break[標(biāo)注]處處時,程序序跳出整個個循環(huán)體的的結(jié)尾處。。continue語句被用來略過過并跳到循循環(huán)體的結(jié)結(jié)尾。當(dāng)程程序運行到到continue[標(biāo)注]處處時,程序序跳至標(biāo)識識外循環(huán)的的下一次循循環(huán)開始處處繼續(xù)執(zhí)行行。40loop:while(true){for(inti=0;i<100;i++){switch(c=System.in.read()){case-1:case`\n`://跳到到最后處breakloop;....}}//endfor}//endwhile41課堂練習(xí)下面的循環(huán)環(huán)程序輸出出結(jié)果是什什么?publicclassShowErrors{publicstaticvoidmain(String[]args){for(inti=0;i<10;i++);System.out.println(i+4);}}42課堂練習(xí)(c.)編寫一個程程序,求出出1+2+3+…+100的和并輸出出。求

溫馨提示

  • 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論