




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Java程序設(shè)計(jì)第三章流程控制1理解程序控制的概念運(yùn)用條件語句,使用if,switch來控制程序的不同執(zhí)行路徑掌握for、while和do句型結(jié)構(gòu)控制程序的循環(huán)執(zhí)行理解并能應(yīng)用break、continue和return調(diào)整程序中的流程控制結(jié)構(gòu)。理解并使用斷言對程序進(jìn)行調(diào)試掌握J(rèn)ava語言中不同注釋形式的區(qū)別掌握利用Scanner類實(shí)現(xiàn)基本的輸入方法理解并能使用System.out對象中的不同輸出方法掌握基本的編程技巧。2程序程序表現(xiàn)為完成某個(gè)功能(目標(biāo))而編寫的指令集合。在整體上,程序運(yùn)行是按照事先編寫的指令(語句)從前到后的順序執(zhí)行,但在執(zhí)行的過程中,經(jīng)常會遇到基于不同條件的決策來執(zhí)行不同的指令,抑或重復(fù)執(zhí)行事先定義的指令來達(dá)到某種目的,但總體上程序總是順序執(zhí)行的。3一個(gè)例子編寫一個(gè)程序,聲明3個(gè)整型變量,用來保存3個(gè)學(xué)生的考試分?jǐn)?shù),計(jì)算他們的平均分(float類型)并輸出。4進(jìn)一步的如果某個(gè)學(xué)生的成績低于60分,則不參與平均分計(jì)算。5在進(jìn)一步如果有50個(gè)學(xué)生的成績已經(jīng)保存在一個(gè)整型數(shù)組中,同樣基于上面規(guī)則來計(jì)算這批學(xué)生的平均分。63.1句、塊和空白構(gòu)成Java程序的最小單位是類,而類則是由屬性和方法構(gòu)成。方法代表了某個(gè)具體的能力,具體的一個(gè)方法就是由為完成某個(gè)功能而編寫的若干條語句組成。73.1.1語句在Java編程語言中,語句是一行由分號(;)終止的代碼,它是一個(gè)完整的可執(zhí)行單元。例如totals=a+b+c+d+e+f;與下式相同total=a+b+c+d+e+f;8在Java中,主要有以下的語句類型聲明語句inta=0;//聲明了一個(gè)整型變量Studentstu;//聲明了一個(gè)類型是Student的對象表達(dá)式語句賦值表達(dá)式,自增表達(dá)式、方法調(diào)用、對象創(chuàng)建都可以和分號一起構(gòu)成“表達(dá)式語句”System.out.println(“Welcome”);//輸出字符串a(chǎn)=Math.abs(-3.1);//返回絕對值value=100;//為變量賦值a++;//a自增Studentstu=newStudent(“張華”);//創(chuàng)建一個(gè)Student類的實(shí)例,實(shí)例引用名為stu控制語句93.1.2語句塊一個(gè)塊(block)或一個(gè)復(fù)合語句是以上括號和下括號為邊界的語句集合;塊語句也被用來組合屬于某個(gè)類的語句。語句塊可被嵌套。//ablock語句{x=y+1;y=x+1;}10//類類聲聲明明所所包包含含的的塊塊語語句句publicclassMyDate{intday;intmonth;intyear;}11//一一個(gè)個(gè)嵌嵌套套塊塊語語句句的的例例子子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é)束束,,用用"}"表表示示123.1.3空空白白在源源代代碼碼元元素素之之間間允允許許空空白白,,空空白白的的數(shù)數(shù)量量不不限限。??湛瞻装?包包括括空空格格、、tabs和和新新行行)可可以以改改善善源源代代碼碼的的視視覺覺感感受受。。{intx;x=23+54;}{intxx=23+54;}133.2邏邏輯輯判判斷斷和和循循環(huán)環(huán)控控制制程序序控控制制可可以以定定義義為為對對程程序序語語句句的的執(zhí)執(zhí)行行順順序序進(jìn)進(jìn)行行的的規(guī)規(guī)定定。。Java提提供供了了條條件件語語句句在在兩兩種種或或更更多多的的情情況況中中做做出出選選擇擇,,根根據(jù)據(jù)情情況況執(zhí)執(zhí)行行不不同同的的程程序序語語句句;;Java也也提提供供了了更更有有效效的的循循環(huán)環(huán)語語句句以以控控制制那那些些需需要要重重復(fù)復(fù)執(zhí)執(zhí)行行的的語語句句。。143.2.1條條件件判判斷斷與與決決策策1if,else語語句句簡單單的的單單分分支支語語句句if(布布爾爾表表達(dá)達(dá)式式){{語句句或或塊塊;;}例如如if(score<60){System.out.println(““下下次次努努力力哦哦!””);}153.2.1條條件件判判斷斷與與決決策策(cont.)簡單單的的雙雙分分支支語語句句if(布布爾爾表表達(dá)達(dá)式式){{語句句或或塊塊;;}else{{語句句或或塊塊;;}例如如if((score<60)){System.out.println(““下下次次努努力力哦哦!””);}else{System.out.println(““恭恭喜喜你你通通過過考考試試!””);}16expBAFT選擇結(jié)構(gòu)173.2.1條條件件判判斷斷與與決決策策(cont.)嵌套套的的if,elseif(布布爾爾表表達(dá)達(dá)式式1){{語句句或或塊塊;;}elseif(布布爾爾表表達(dá)達(dá)式式2){{語句句或或塊塊;;}else{語句句或或塊塊;;}18例如如if((score<60)){System.out.println(““下下次次努努力力哦哦!””);}elseif(score<80){System.out.println(““恭恭喜喜你你通通過過考考試試!””);}else{System.out.println(““你你考考的的很很棒棒!””);}193.2.1條條件件判判斷斷與與決決策策(cont.)2switch語語句句switch語語句句允允許許程程序序員員更更多多情情況況下下選選擇擇不不同同的的程程序序邏邏輯輯,,當(dāng)當(dāng)情情況況發(fā)發(fā)生生時(shí)時(shí),,按按照照事事先先準(zhǔn)準(zhǔn)備備好好的的方方法法執(zhí)執(zhí)行行。。switch語語句句的的句句法法是是::switch(expr1){{caseexpr2:statements;break;caseexpr3:statements;break;default:statements;}20chargender;//性性別別……….switch((gender)){case‘‘F’’::case‘‘f’’:System.out.println(””女女性性““);break;case‘‘M’’::case‘‘m’’:System.out.println(””男男性性““);break;}21在switch(expr1)語語句句中中,,expr1必必須須與與int類類型型是是賦賦值值兼兼容容的的;;byte,short或或char類類型型可可被被升升級級;;不不允允許許使使用用浮浮點(diǎn)點(diǎn)或或long表表達(dá)達(dá)式式。。變量量或或表表達(dá)達(dá)式式的的值值不不能能與與任任何何case值值相相匹匹配配時(shí)時(shí),,可可選選缺缺省省符符((default))指指出出了了應(yīng)應(yīng)該該執(zhí)執(zhí)行行的的程程序序代代碼碼。。如果果沒沒有有break語語句句作作為為某某一一個(gè)個(gè)case代代碼碼段段的的結(jié)結(jié)束束句句,,則則程程序序的的執(zhí)執(zhí)行行將將繼繼續(xù)續(xù)到到下下一一個(gè)個(gè)case,,而而不不檢檢查查case表表達(dá)達(dá)式式的的值值。。default語語句句一一般般在在switch語語句句的的最最后后。。在switch(expr1)語語句句中中,,expr1也也可可以以是是枚枚舉舉類類型型publicenumMonth{JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER}22TA1Fexp=1TA2Fexp=2…TAnFexp=n多分支結(jié)構(gòu)23課堂堂練練習(xí)習(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);24課堂堂練練習(xí)習(xí)(c.)指出出輸輸出出結(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);25課堂堂練練習(xí)習(xí)(c.)執(zhí)行行下下列列switch語語句句后后y是多多少少??x=3;switch(x+3){case6:y=1;default:y+=1;}26課堂堂練練習(xí)習(xí)(c.)有一一個(gè)個(gè)函函數(shù)數(shù)如如下下,,根根據(jù)據(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。。27課堂堂練練習(xí)習(xí)(c.)編寫寫一一個(gè)個(gè)程程序序,,根根據(jù)據(jù)命命令令行行參參數(shù)數(shù)將將對對應(yīng)應(yīng)的的1、、2、、3、、4、、5、、6、、7分分別別輸輸出出為為星星期期一一、、星星期期二二…….星星期期日日,,如如::JavaWeekDay1星期期一一28思考考題題如何何提提高高多多分分支支下下的的程程序序執(zhí)執(zhí)行行效效率率??293.2.2循循環(huán)環(huán)循環(huán)環(huán)語語句句使使語語句句或或塊塊的的執(zhí)執(zhí)行行得得以以重重復(fù)復(fù)進(jìn)進(jìn)行行。。Java編編程程語語言言支支持持三三種種循循環(huán)環(huán)構(gòu)構(gòu)造造類類型型::for,while和和do循循環(huán)環(huán)。。for和和while循循環(huán)環(huán)是是在在執(zhí)執(zhí)行行循循環(huán)環(huán)體體之之前前測測試試循循環(huán)環(huán)條條件件do循循環(huán)環(huán)是是在在執(zhí)執(zhí)行行完完循循環(huán)環(huán)體體之之后后測測試試循循環(huán)環(huán)條條件件。。這就就意意味味著著for和和while循循環(huán)環(huán)可可能能連連一一次次循循環(huán)環(huán)體體都都未未執(zhí)執(zhí)行行,,而而do循循環(huán)環(huán)將將至至少少執(zhí)執(zhí)行行一一次次循循環(huán)環(huán)體體。。30FSTexp直到型循環(huán)當(dāng)型循環(huán)TexpSF31for循循環(huán)環(huán)的的句句法法是是::for(init_expr;booleantestexpr;alter_expr){{statementorblock}例如如::for(inti=0;i<10;i++){System.out.println("i="+i);}32增強(qiáng)強(qiáng)的的for循循環(huán)環(huán)publicclassForEnhancedDemo{publicstaticvoidmain(String[]args){int[]arrayOfInts={32,87,3,589,12,1076,2000,8,622,127};for(intelement:arrayOfInts){System.out.print(element+"");}System.out.println();}}33while循環(huán)環(huán)的句句法::while(布布爾表表達(dá)式式){{語句或或塊}inti=0;while(i<10){System.out.println("i="+i);i++;}System.out.println("Finally!");34do循循環(huán)的的句法法是::do{{語句或或塊;;}while(布布爾測測試)inti=0;do{System.out.println("i="+i);i++;}while(i<10);System.out.println("Finally!");35思考題題怎么決決定使使用哪哪類循循環(huán)??36循環(huán)的的嵌套套在一個(gè)個(gè)循環(huán)環(huán)體內(nèi)內(nèi)又包包含了了另一一個(gè)完完整的的循環(huán)環(huán)結(jié)構(gòu)構(gòu),成成為嵌嵌套循循環(huán)。。如:while(循循環(huán)條條件)){[語句句;]while((循環(huán)環(huán)條件件){[語句句;]}[語句句;]}373.2.3跳跳轉(zhuǎn)下列語語句可可被用用在更更深層層次的的控制制循環(huán)環(huán)語句句中::break[[標(biāo)注注];;continue[[標(biāo)注注];;label:語語句句;Label:被被用用來標(biāo)標(biāo)識循循環(huán)構(gòu)構(gòu)造的的復(fù)合合語句句。break語句句被用用來從從switch語句句、for語句句等循循環(huán)語語句的的塊中中退出出到預(yù)預(yù)先設(shè)設(shè)定的的label處處。當(dāng)當(dāng)程序序運(yùn)行行到break[[標(biāo)注注]處處時(shí),,程序序跳出出整個(gè)個(gè)循環(huán)環(huán)體的的結(jié)尾尾處。。continue語語句被被用來來略過過并跳跳到循循環(huán)體體的結(jié)結(jié)尾。。當(dāng)程程序運(yùn)運(yùn)行到到continue[[標(biāo)注注]處處時(shí),,程序序跳至至標(biāo)識識外循循環(huán)的的下一一次循循環(huán)開開始處處繼續(xù)續(xù)執(zhí)行行。38loop:while(true){for(inti=0;i<100;i++){switch(c=System.in.read()){case-1:case`\n`://跳跳到到最后后處breakloop;....}}//endfor}//endwhile39課堂練練習(xí)下面的的循環(huán)環(huán)程序序輸出出結(jié)果果是什什么??publicclassShowErrors{publicstaticvoidmain(String[]args){for(inti=0;i<10;i++);System.out.println(i+4);}}40課堂練練習(xí)(c.)編寫一一個(gè)程程序,,求出出1+2+3+…+100的的和并并輸出出。求出100-200間的的所有有素?cái)?shù)數(shù)。41用下面面的方方法聲聲明,,編寫寫一個(gè)個(gè)java方法法,返返回接接收字字符數(shù)數(shù)組中中連續(xù)續(xù)字符符塊的的個(gè)數(shù)數(shù):publicstaticintcountRuns(char[]A)42程序流流程圖圖程序流流程圖圖也叫叫程序序框圖圖.程程序流流程圖圖的表表示以以3種種程序序結(jié)構(gòu)構(gòu)為基基礎(chǔ)。。優(yōu)點(diǎn)歷史最最悠久久,使使用最最廣泛泛;流程控控制直直觀,容易易掌握握;至今仍仍廣泛泛使用用.缺點(diǎn)可能誘誘導(dǎo)程程序員員過早早考慮慮程序序細(xì)節(jié)節(jié),而而不是是逐步步求精精;對于提提高大大型系系統(tǒng)的的可理理解性性作用用不大大;程序隨隨意轉(zhuǎn)轉(zhuǎn)移,導(dǎo)致致程序序結(jié)構(gòu)構(gòu)混亂亂;無法表表示數(shù)數(shù)據(jù)結(jié)結(jié)構(gòu).43起止輸入輸出處理判斷打印輸出連接準(zhǔn)備控制流磁盤文件換頁循環(huán)下界循環(huán)上界程序流流程圖圖的常常用符符號:程序流流程圖圖(Cont.)44SequentialABPFTABSelectivePFTBCallsubroutineA盒圖(BoxDiagram):Nassi&Shneiderman1973年提出出,又又稱為為N-SCharts。。Chapin1974年作擴(kuò)擴(kuò)充,,故也也稱為為Chapincharts.用用方框框圖代代替?zhèn)鱾鹘y(tǒng)的的流程程圖;N-S圖45x4TFDo-Untilx5ighfkx1TFbDo-Untilx6ajx21cDo-Whilex323dek:例:N-S圖((cont.)46變量的的作用用域每個(gè)變變量都都有一一個(gè)作作用域域,就就是說說這個(gè)個(gè)變量量在哪哪個(gè)程程序段段中起起作用用。變量的作用用域從它被被聲明時(shí)開開始直到遇遇到聲明變變量的代碼碼段的結(jié)束束符“}””為止。只能在變量量的作用域域內(nèi)訪問它它。如果在在作用域之之外訪問變變量,編譯譯器將產(chǎn)生生一個(gè)錯(cuò)誤誤。作用域的范范圍成員變量局部變量方法參數(shù)47變量的作用用域(c.)publicclassVariableScope{publicstaticvoidmain(Stringargs[]){inti=10;{intk=10;System.out.println("i="+i);System.out.println("k="+k);}System.out.println("i="+i);System.out.println("k="+k);}}48變量的作用用域(c.)可以注意到到,不同作作用域內(nèi)的的變量互相相不干擾,,通常變量量是當(dāng)前最最近作用域域內(nèi)定義的的該變量,,如果要引引用更大作作用域外的的變量,則則需要增加加限定符,,例如我們們已經(jīng)看到到過的this.493.3基本本的輸入輸輸出控制控制臺的輸輸入表3-2Scanner類nextByte()將輸入信息的下一個(gè)標(biāo)記掃描為一個(gè)byte。nextDouble()將輸入信息的下一個(gè)標(biāo)記掃描為一個(gè)doublenextFloat()將輸入信息的下一個(gè)標(biāo)記掃描為一個(gè)floatnextInt()()將輸入信息的下一個(gè)標(biāo)記掃描為一個(gè)intnextLine()此掃描器執(zhí)行當(dāng)前行,并返回跳過的輸入信息nextLong()將輸入信息的下一個(gè)標(biāo)記掃描為一個(gè)longnextShort()將輸入信息的下一個(gè)標(biāo)記掃描為一個(gè)short50Scannerreader=newScanner(System.in);程序51字符界面的的輸出printprint是PrintStream類提供的的一種輸出出方法,支支持boolean、char、char[]、double、、float、int、long、short、String、、Object的直直接輸出printlnprintln方法法不同于print的主要之之處在于將將輸出信息息打印完之之后,還要要寫出行分分割字符串串,默認(rèn)情情況下,這這個(gè)行分割割字符串是是"\n",即輸出出一個(gè)換行行回車。Printfprintf則是一一種格式化化輸出,類類似于c語語言的printf(),實(shí)實(shí)現(xiàn)了對布布局對齊和和排列的支支持,以及及對數(shù)值、、字符串和和日期/時(shí)時(shí)間數(shù)據(jù)的的常規(guī)格式式和特定于于語言環(huán)境境的輸出的的支持52表3-2主要的對應(yīng)格式轉(zhuǎn)換參數(shù)類別說明'b','B'常規(guī)如果參數(shù)arg為null,則結(jié)果為"false"。如果arg是一個(gè)boolean值或Boolean,則結(jié)果為String.valueOf()返回的字符串。否則結(jié)果為"true"。'h','H'常規(guī)如果參數(shù)arg為null,則結(jié)果為"null"。否則,結(jié)果為調(diào)用Integer.toHexString(arg.hashCode())得到的結(jié)果。's','S'常規(guī)如果參數(shù)arg為null,則結(jié)果為"null"。如果arg實(shí)現(xiàn)Formattable,則調(diào)用arg.formatTo。否則,結(jié)果為調(diào)用arg.toString()得到的結(jié)果。'c','C'字符結(jié)果是一個(gè)Unicode字符'd'整數(shù)結(jié)果被格式化為十進(jìn)制整數(shù)'o'整數(shù)結(jié)果被格式化為八進(jìn)制整數(shù)'x','X'整數(shù)結(jié)果被格式化為十六進(jìn)制整數(shù)'e','E'浮點(diǎn)結(jié)果被格式化為用計(jì)算機(jī)科學(xué)記數(shù)法表示的十進(jìn)制數(shù)'f'浮點(diǎn)結(jié)果被格式化為十進(jìn)制數(shù)'g','G'浮點(diǎn)根據(jù)精度和舍入運(yùn)算后的值,使用計(jì)算機(jī)科學(xué)記數(shù)形式或十進(jìn)制格式對結(jié)果進(jìn)行格式化。'a','A'浮點(diǎn)結(jié)果被格式化為帶有效位數(shù)和指數(shù)的十六進(jìn)制浮點(diǎn)數(shù)'t','T'日期/時(shí)間日期和時(shí)間轉(zhuǎn)換字符的前綴。請參閱日期/時(shí)間轉(zhuǎn)換。'%'百分比結(jié)果為字面值'%'('\u0025')'n'行分隔符結(jié)果為特定于平臺的行分隔符53publicclassTestPrintf{publicstaticvoidmain(String[]args){inti=100;booleanstatus=true;Stringstr="Welcome";System.out.printf("%d%b%s",i,status,str);}}54格式字符串串產(chǎn)生格式化化輸出的每每個(gè)方法都都需要格式字符串串和參數(shù)列表。格式字符符串是一個(gè)個(gè)String,它可以包包含固定文文本以及一一個(gè)或多個(gè)個(gè)嵌入的格式說明符符。請考慮以以下示例::Calendarc=...;Strings=St
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度知識產(chǎn)權(quán)贈與及許可協(xié)議書范文
- 二零二五年度資料員招聘與知識產(chǎn)權(quán)保護(hù)與運(yùn)用協(xié)議
- 2025年度電力設(shè)備安裝與檢修服務(wù)合同
- 二零二五年度科研機(jī)構(gòu)實(shí)驗(yàn)室年租房合同
- 二零二五年度廣告公司兼職設(shè)計(jì)師合作協(xié)議
- 2025年度珠寶玉石進(jìn)出口貿(mào)易合同
- 網(wǎng)絡(luò)安全防御策略知識題庫
- 探索阿凡提的故事的寓言色彩
- 農(nóng)業(yè)環(huán)境保護(hù)工作要點(diǎn)
- 公司年度運(yùn)營計(jì)劃與目標(biāo)分解書
- 2025浙江杭州地鐵運(yùn)營分公司校園招聘665人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025四川省小金縣事業(yè)單位招聘362人歷年高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 2022泛海三江消防ZX900液晶手動控制盤使用手冊
- 廣西壯族自治區(qū)柳州市2025年中考物理模擬考試卷三套附答案
- 第11課《山地回憶》說課稿 2024-2025學(xué)年統(tǒng)編版語文七年級下冊
- 羅森運(yùn)營部經(jīng)營管理手冊
- 高標(biāo)準(zhǔn)農(nóng)田施工組織設(shè)計(jì)
- 老舊小區(qū)改造項(xiàng)目施工組織設(shè)計(jì)方案
- 【招商手冊】杭州ICON CENTER 社交娛樂中心年輕人潮流消費(fèi)創(chuàng)新實(shí)驗(yàn)
- 2025屆高考數(shù)學(xué)二輪復(fù)習(xí)備考策略和方向
- 2025年國家稅務(wù)總局遼寧省稅務(wù)局系統(tǒng)招聘事業(yè)單位工作人員管理單位筆試遴選500模擬題附帶答案詳解
評論
0/150
提交評論