




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
《面向?qū)ο蟪绦蛟O(shè)計(jì)》教案第4講教學(xué)對(duì)象計(jì)算機(jī)科學(xué)技術(shù)專業(yè)授課內(nèi)容結(jié)構(gòu)化編程3.1編程方法3.2選擇結(jié)構(gòu)3.3案例學(xué)習(xí):兩位數(shù)加減運(yùn)算3.4switch語句與switch表達(dá)式課程標(biāo)準(zhǔn)教學(xué)目標(biāo)(一)知識(shí)目標(biāo)了解編程方法掌握各種選擇結(jié)構(gòu)重點(diǎn)掌握if-else結(jié)構(gòu)和switch結(jié)構(gòu)(二)能力目標(biāo)1.能夠掌握java語言語法、流程控制等專業(yè)基礎(chǔ)知識(shí)2.能夠掌握軟件開發(fā)工具如開發(fā)平臺(tái)、測試平臺(tái)、配置管理軟件和項(xiàng)目管理軟件的使用方法。教學(xué)方法課前預(yù)習(xí)、課堂講授、課堂和課后練習(xí)。學(xué)時(shí)及分配(第1學(xué)時(shí)50分鐘)課堂講授20分鐘課堂練習(xí)30分鐘3.1編程方法3.2選擇結(jié)構(gòu)學(xué)時(shí)及分配(第2學(xué)時(shí)50分鐘)課堂講授20分鐘課堂練習(xí)30分鐘3.3案例學(xué)習(xí):兩位數(shù)加減運(yùn)算3.4switch語句與switch表達(dá)式【課堂互動(dòng)與討論】知識(shí)點(diǎn)分析重點(diǎn):掌握各種選擇結(jié)構(gòu)的使用,包括if-else結(jié)構(gòu)和switch結(jié)構(gòu)難點(diǎn):新的switch結(jié)構(gòu)和switch表達(dá)式的使用教學(xué)過程設(shè)計(jì)內(nèi)容方式問題導(dǎo)入有多種編程方法,比如結(jié)構(gòu)化編程方法、面向?qū)ο缶幊谭椒?、函?shù)式編程、反應(yīng)式編程。內(nèi)容要點(diǎn)3.1編程方法結(jié)構(gòu)化編程(structuredprogramming)方法在1965年提出的,是軟件發(fā)展的一個(gè)重要的里程碑。在結(jié)構(gòu)化編程中,只允許三種基本的程序結(jié)構(gòu),它們是順序結(jié)構(gòu)、分支結(jié)構(gòu)(包括多分支結(jié)構(gòu))和循環(huán)結(jié)構(gòu),這三種基本結(jié)構(gòu)的共同特點(diǎn)是只允許有一個(gè)入口和一個(gè)出口,僅由這三種基本結(jié)構(gòu)組成的程序稱為結(jié)構(gòu)化程序。順序結(jié)構(gòu)。順序結(jié)構(gòu)表示程序中的各操作是按照它們出現(xiàn)的先后順序執(zhí)行的。選擇結(jié)構(gòu)。程序的處理步驟出現(xiàn)了分支,它需要根據(jù)某一特定的條件選擇其中的一個(gè)分支執(zhí)行。循環(huán)結(jié)構(gòu)。程序反復(fù)執(zhí)行某個(gè)或某些操作,直到某條件為假(或?yàn)檎妫r(shí)才可終止循環(huán)。順序結(jié)構(gòu)比較簡單,程序按語句的順序依次執(zhí)行。前面章節(jié)編寫的程序都是順序結(jié)構(gòu)的,本章重點(diǎn)討論選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。3.2選擇結(jié)構(gòu)3.2.1if語句if語句的格式如下:if(條件){語句(組);}【程序3-1】if語句的使用。編寫程序,要求用戶從鍵盤輸入兩個(gè)整數(shù),分別存入變量a與b,如果a大于b,則交換a和b的值,也就是保證a小于或等于b,最后輸出a和b的值。ExchangeDemo.javaif(a>b){intt=b;交換a與b的值b=a;交換a與b的值a=t;}【提示】省略花括號(hào)可以使代碼更整潔,但也是容易產(chǎn)生錯(cuò)誤。將來需要為代碼塊增加語句時(shí),容易忘記加上括號(hào)。這是初學(xué)者常犯的錯(cuò)誤。3.2.2if~else語句if-else結(jié)構(gòu)的一般格式如下:if(條件){語句(組)1;}else{語句(組)2;}【程序3-2】if-else語句的使用。該案例要求用戶從鍵盤輸入一個(gè)年份,輸出該年是否是閏年。符合下面兩個(gè)條件之一的年份即為閏年:(1)能被400整除;(2)能被4整除,但不能被100整除。LeapYear.javaif(year%400==0||(year%4==0&&year%100!=0)){System.out.println(year+"年是閏年。");}else{System.out.println(year+"年不是閏年。");}3.2.3條件運(yùn)算符條件運(yùn)算符(conditionaloperator)的格式如下:條件?表達(dá)式1:表達(dá)式23.2.4嵌套的if語句和多分支的if-else語句嵌套的深度沒有限制例如,下面就是一個(gè)嵌套的if結(jié)構(gòu),其功能是求a、b和c中最大值并將其保存到max中。if(a>b){if(a>c)一個(gè)嵌套的if~else結(jié)構(gòu) max=a;一個(gè)嵌套的if~else結(jié)構(gòu)elsemax=c;}else{if(b>c)一個(gè)嵌套的if~else結(jié)構(gòu) max=b;一個(gè)嵌套的if~else結(jié)構(gòu)elsemax=c;}注意,把每個(gè)else同與它匹配的if對(duì)齊排列,這樣做很容易辨別嵌套層次。如果程序邏輯需要多個(gè)選擇,可以在if語句中使用一系列的elseif語句,這種結(jié)構(gòu)稱為多分支的if~else結(jié)構(gòu)或者稱為階梯式if~else結(jié)構(gòu)。3.2.5多分支if-else語句【程序3-3】多分支if-else語句的使用。要求輸入一個(gè)人的身高和體重,計(jì)算并打印出他的BMI,同時(shí)顯示BMI是高還是低。對(duì)于一個(gè)成年人,BMI值的含義如下:BMI<18.5,表示偏瘦;18.5≤BMI<25.0,表示正常;25.0≤BMI<30.0,表示超重;BMI≥30.0,表示過胖。ComputeBMI.javaif(bmi<18.5){System.out.println("你的體重偏瘦。");}elseif(bmi<25.0){System.out.println("你的體重正常。");}elseif(bmi<30.0){System.out.println("你的體重超重。");}else{System.out.println("你的體重過胖。");}3.3案例學(xué)習(xí):兩位數(shù)加減運(yùn)算1.問題描述開發(fā)一個(gè)讓小學(xué)生練習(xí)兩位整數(shù)加減法的程序,要求程序運(yùn)行隨機(jī)生成兩個(gè)兩位數(shù)及加減號(hào)(要保證減法算式的被減數(shù)大于減數(shù)),顯示題目讓學(xué)生輸入計(jì)算結(jié)果,程序判斷結(jié)果是否正確。2.運(yùn)行結(jié)果案例運(yùn)行結(jié)果如圖3-9所示,這里產(chǎn)生一個(gè)減法題目。該案例的設(shè)計(jì)思路主要如下:(1)要實(shí)現(xiàn)加減法運(yùn)算,首先應(yīng)該隨機(jī)產(chǎn)生兩個(gè)兩位整數(shù)。隨機(jī)生成整數(shù)有多種方法,可以使用Math.random()方法生成一個(gè)隨機(jī)浮點(diǎn)數(shù),然后將它擴(kuò)大再取整。random()方法返回0.0~1.0(不包括)之間的浮點(diǎn)數(shù),要得到10~99之間的整數(shù),可以使用下面表達(dá)式:intnumber1=10+(int)(Math.random()*90);(2)確定加或減運(yùn)算。這也可以通過產(chǎn)生2個(gè)隨機(jī)數(shù)(比如,0和1,0表示加法,1表示減法)確定。intoperator=(int)(Math.random()*2);(3)設(shè)學(xué)生沒有學(xué)過負(fù)數(shù)概念,如果做減法運(yùn)算,要保證第一個(gè)數(shù)大于第二個(gè)數(shù)。也就是如果number1小于number2,應(yīng)該交換這兩個(gè)數(shù)。if(number1<number2){inttemp=number2;number2=number1;number1=temp;}最后根據(jù)運(yùn)算符決定做何種運(yùn)算。將計(jì)算結(jié)果保存到result變量中,然后與用戶輸入的答案answer比較,判斷用戶答題是否正確3.4switch語句與switch表達(dá)式從Java12開始對(duì)switch語句進(jìn)行了修改并支持switch表達(dá)式。盡管Java仍然支持舊的switch結(jié)構(gòu),但建議讀者熟悉并使用新的switch語句和switch表達(dá)式。3.4.1switch語句如果需要從多個(gè)選項(xiàng)選擇其中一個(gè),可以使用switch語句。switch語句主要實(shí)現(xiàn)多分支結(jié)構(gòu),一般格式如下:switch(表達(dá)式){case值1->語句(組)1;case值2->語句(組)2;…case值n->語句(組)n;[default->語句(組)n+1;]}【程序3-5】用switch結(jié)構(gòu)實(shí)現(xiàn)多重選擇。該案例要求從鍵盤輸入一個(gè)季節(jié)數(shù)字(1,2,3,4),程序根據(jù)輸入的數(shù)輸出一句話。SwitchDemo.javaintseason=input.nextInt();switch(season){case1->System.out.println("春雨驚春清谷天");case2->System.out.println("夏滿忙夏暑相連");case3->System.out.println("秋處露秋寒霜降");case4->System.out.println("冬雪雪冬小大寒");default->System.out.println("季節(jié)輸入非法.");}從Java7開始,可以在switch語句的表達(dá)式中使用String對(duì)象。3.4.2switch表達(dá)式可以使用switch表達(dá)式,即通過switch結(jié)構(gòu)返回一個(gè)值,并將該值賦給變量。例如,下面代碼根據(jù)day的值返回一個(gè)數(shù)值賦給變量numLetters。DayOfWeekday=DayOfWeek.SATURDAY;intnumLetters=switch(day){根據(jù)表示星期的枚舉常量返回單詞的字母數(shù)caseMONDAY,FRIDAY,SUNDAY->6;根據(jù)表示星期的枚舉常量返回單詞的字母數(shù)caseTUESDAY->7;caseTHURSDAY,SATURDAY->8;caseWEDNESDAY->9;分號(hào)是賦值語句的結(jié)束};分號(hào)是賦值語句的結(jié)束System.out.println(numLetters);//輸出8【程序3-7】switch表達(dá)式應(yīng)用。下面程序從鍵盤輸入一個(gè)年份(如2000年)和一個(gè)月份(如2月),用switch表達(dá)式返回該月的天數(shù)(29),將其存入一個(gè)變量。SwitchExprDemo.java intyear=input.nextInt(); intmonth=input.nextInt();switch表達(dá)式 intnumDays=switch(month){switch表達(dá)式 case1,3,5,7,8,10,12->31; case4,6,9,11->30; //對(duì)2月需要判斷是否是閏年 case2->{ if(((year%4==0)&&!(year%100==0))||(year%400==0))yield是受限標(biāo)識(shí)符,生成一個(gè)值 yield29;yield是受限標(biāo)識(shí)符,生成一個(gè)值 else yield28; } default->0;分號(hào)是賦值語句的結(jié)束 };分號(hào)是賦值語句的結(jié)束 System.out.println("該月的天數(shù)為:"+numDays);【課堂互動(dòng)與討論】從一副紙牌中任意抽取一張,并打印出抽取的是哪一張牌。一副牌有4種花色,黑桃、紅桃、方塊和梅花。每種花色有13張牌,共有52張牌。可以將這52張牌編號(hào),從0到51。規(guī)定編號(hào)0到12為黑桃,13到25為紅桃,26到38為方塊,39到51為梅花??梢允褂谜麛?shù)的除法運(yùn)算來確定是哪一種花色,用求余數(shù)運(yùn)算確定是哪一張牌。例如,假設(shè)抽出的數(shù)是n,計(jì)算n/13的結(jié)果,若商為0,則牌的花色為黑桃,若商為1,則牌的花色為紅桃,若商為2,則牌的花色為方塊,若商為3,則牌的花色為梅花。計(jì)算n%13的結(jié)果可得到第幾張牌。 intcard=(int)(Math.random()*52); Stringsuit="",rank=""; suit=switch(card/13){//確定牌的花色 case0->"?"; case1->"?"; case2->"?"; case3->"?";在switch表達(dá)式中必須包含default語句default->"";在switch表達(dá)式中必須包含default語句 }; rank=switch(card%13){//確定是第幾張牌 case0->"A"; ca
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 表語從句考試題及答案
- 宇宙?zhèn)鬟_(dá)測試題及答案
- 實(shí)驗(yàn)安全考試試題及答案
- 家電公司固定資產(chǎn)管理規(guī)章
- 特種鍋爐考試題及答案
- 肺炎護(hù)理考試題及答案
- 戲劇課程:釋放天性提升自信
- cnas考試題及答案
- 道路結(jié)構(gòu)試題及答案
- 花瓣游戲測試題及答案
- 2026屆貴州省六校聯(lián)盟高三高考聯(lián)考卷(一)化學(xué)及答案
- 2025年七一黨課-作風(fēng)建設(shè)永遠(yuǎn)在路上學(xué)習(xí)教育黨課
- 黃山義警隊(duì)管理制度
- 十五五畜牧獸醫(yī)行業(yè)發(fā)展規(guī)劃
- 2025-2030中國排毒養(yǎng)顏茶行業(yè)發(fā)展分析及發(fā)展趨勢預(yù)測與投資風(fēng)險(xiǎn)研究報(bào)告
- 2025年全國高考數(shù)學(xué)真題全國2卷
- 滬港通測試題及答案
- 2025年新能源發(fā)電并網(wǎng)政策對(duì)行業(yè)發(fā)展影響分析報(bào)告
- 實(shí)驗(yàn)室生物安全會(huì)議記錄內(nèi)容
- 國家工業(yè)信息安全發(fā)展研究中心招聘考試真題2024
- 美軍空域控制AirForceDo ctrinePublication3-52,AirspaceControl
評(píng)論
0/150
提交評(píng)論