版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
JAVA前九章復(fù)習(xí)教案(多態(tài)、抽象之前)0902:張坤朋第1講 Java概述及入門為什么學(xué)習(xí)Java我們知道了什么是程序,作為軟件工程師,我們的工作就是編寫程序。計算機就是一臺機器,它不可能懂人類的語言,所以我們要學(xué)習(xí)一種計算機能懂的語言,就像要和說英語的交流,我們就要學(xué)習(xí)英語,要和說法語的人交流,就要學(xué)習(xí)法語,所以我們要做軟件工程師,和計算機打交道,就要學(xué)習(xí)計算機語言。JAVA就是我們專門要學(xué)習(xí)的高級計算機語言,學(xué)好這門語言將為以后的學(xué)習(xí)打下良好的基礎(chǔ),為以后的工作鋪平道路。Java是SunMicrosystems于1995年推出的高級編程語言。Java領(lǐng)域的JavaSE、JavaEE、JavaME技術(shù)已發(fā)展成為同C#和.NET平分天下的應(yīng)用軟件開發(fā)平臺和技術(shù)現(xiàn)在JavaME更是3G軟件技術(shù)的前沿Java可以做什么開發(fā)桌面應(yīng)用程序(C/S結(jié)構(gòu))銀行軟件、商場結(jié)算軟件C/S結(jié)構(gòu)是指:必須在客戶機(自己用的電腦)上安裝程序后才能使用的程序結(jié)構(gòu),比如常用的騰訊QQ軟件,必須安裝后才能使用。開發(fā)面向Internet的應(yīng)用程序(B/S結(jié)構(gòu))網(wǎng)上數(shù)碼商城、阿里巴巴、易趣網(wǎng)B/S結(jié)構(gòu)是指:只要用瀏覽器就能使用的程序,比如各種網(wǎng)站:網(wǎng)易、淘寶網(wǎng)、新華網(wǎng)等開發(fā)手機等移動設(shè)備程序JavaME手機QQ、移動飛信Java技術(shù)平臺JavaSE:(Java平臺標(biāo)準(zhǔn)版)主要用來開發(fā)C/S結(jié)構(gòu)的程序JavaEE:(Java平臺企業(yè)版)主要用來開發(fā)B/S結(jié)構(gòu)的程序JavaME:(Java嵌入式系統(tǒng))主要用來開發(fā)手機、機頂盒之類的小型程序Java2Card:JAVA智能卡:主要用于智能終端設(shè)備的智能卡片Java的特點簡單——Java設(shè)計人員刪除了C++中許多復(fù)雜的功能,如指針操縱和運算符重載等純面向?qū)ο蟆贘ava中任何東西都是對象。因此,重點集中在數(shù)據(jù)、應(yīng)用程序中操作對象的方法以及過程上健壯性——Java在編譯和解釋時都會檢查代碼安全性——Java提供了用于執(zhí)行程序的受控環(huán)境,以及多層次的安全控制分布式——Java可用于開發(fā)能夠在多個平臺、操作系統(tǒng)和圖形用戶界面之間移植的應(yīng)用程序多線程——Java程序使用稱為“多線程”的進(jìn)程同時處理多項任務(wù)平臺無關(guān)性——Java使用解釋器來執(zhí)行代碼,所以可以實現(xiàn)“一次編寫,到處運行”Java是一種可跨平臺的計算機語言Java的源代碼和字節(jié)碼是與機器無關(guān)的,字節(jié)碼運行在JVM中JVM(JAVA虛擬機)是與機器相關(guān)的(JavaVirtualMachine)裝有不同操作系統(tǒng)的機器上,需要有專門為該操作系統(tǒng)開發(fā)的JVMJava虛擬機(JVM)可運行Java字節(jié)碼的虛擬計算機系統(tǒng)它有一個解釋器組件,可以實現(xiàn)Java字節(jié)碼和計算機操作系統(tǒng)之間的通信在編寫好JAVA應(yīng)用程序后,將JAVA應(yīng)用程序編譯成字節(jié)碼程序。字節(jié)碼程序可以在任何安裝好JAVA虛擬機(JVM)的操作系統(tǒng)之中運行。Java虛擬機的運行過程源代碼將被編譯生成字節(jié)碼文件字節(jié)碼文件在JVM中運行,通過類加載器加載到內(nèi)存中,然后在字節(jié)碼校驗器中進(jìn)行字節(jié)碼的校驗,如果正確無誤,就通過JVM的解釋器和JIT代碼生成器通知硬件設(shè)備執(zhí)行程序。常見的java誤解誤解一:JAVA是HTML的擴展誤解二:JAVA是非常容易學(xué)習(xí)的編程語言誤解三:JAVA提供了一個非常容易編程的環(huán)境誤解四:JAVA會變成通用于任一平臺的統(tǒng)一語言誤解五:現(xiàn)在有了C#,Java過時了誤解六:JavaScript是Java的簡易版本誤解七:Java有專利,應(yīng)該避免使用誤解八:所有的Java程序都是在網(wǎng)頁中運行的Java的開發(fā)環(huán)境JDK是有助于程序員開發(fā)Java程序的Java開發(fā)工具包jdk-6u1-windows-i586-p了解安裝目錄:bin目錄:存放可執(zhí)行文件;lib目錄:存放Java的類庫文件;include目錄:存放用于本地方法的文件;demo目錄:存放演示程序;jre目錄:存放Java運行環(huán)境文件;配置環(huán)境變量用右鍵單擊“我的電腦”,查看“屬性”,在“高級”選項卡中點擊下方的“環(huán)境變量”按鈕,在環(huán)境變量中進(jìn)行如下設(shè)置:在系統(tǒng)變量(下面的框)中新建如下變量:“=”左邊的是變量名,右邊的是變量值:JAVA_HOME=D:\ProgramFiles\Java\jdk1.6.0找到變量中已經(jīng)存在的PATH變量,雙擊修改,PATH的最后加上;D:\ProgramFiles\Java\jdk1.6.0注意:在這個示例中:D:\ProgramFiles\Java\jdk1.6.0為JDK安裝目錄,如果JDK安裝在其他目錄,請相應(yīng)修改小結(jié)什么是程序JAVA語言的版本劃分JAVA虛擬機的運行機制環(huán)境變量的配置知識點3:開發(fā)第一個Java程序[50分鐘]三步走編寫源程序分析問題后編寫源代碼:將解決問題的指令用JAVA語言描述出來分析問題如何解決分析解決問題過程中要用到哪些代碼結(jié)構(gòu)分析這些代碼的執(zhí)行順序用JAVA語言寫出相應(yīng)代碼編譯源程序?qū)⒃创a轉(zhuǎn)換成字節(jié)碼,JAVA運行環(huán)境會將字節(jié)碼轉(zhuǎn)換成機器碼這個過程可由工具自動完成,這個過程是必不可少的運行JAVA入口程序框架外層框架Java程序框架JAVA入口程序框架外層框架語法:publicclassHelloWorld{ publicstaticvoidmain(String[]args){ //這里填寫代碼填寫代碼 }填寫代碼}類的框架:必須以public開頭,全部都是小寫在類名的前面一定要有class關(guān)鍵字類名不要使用中文不要使用特殊字符要用大寫字母開頭要有一定的意義,能表示這個程序要做什么事情類名后面一定有一對大括號,所有要執(zhí)行的代碼都在這對大括號中main方法四要素方法必須public開頭,全部都是小寫main方法中一定有static關(guān)鍵字,這個關(guān)鍵字緊跟在public關(guān)鍵字后面在方法名main的前面一定要使用void關(guān)鍵字在方法名main的后面一定用(String[]args)結(jié)束最后要有一對大括號,代碼就寫在大括號中用Eclipse開發(fā)Java程序的步驟打開“MyEclipse”工具:在桌面上雙擊工具的圖標(biāo):可能是5.5或是6.0或是更高版本,這只是版本的不同,功能基本一致(版本越高,功能越強)出現(xiàn)以下窗口,用于選擇工作空間——即:我們創(chuàng)建的JAVA程序放在電腦中的什么目錄中(正確選擇相應(yīng)目錄會讓我們很容易找到我們編寫的程序)可以點擊“Browse...”(瀏覽),以改變保存的位置,使自己編寫的JAVA程序放在自己創(chuàng)建的目錄中一般在D盤或E盤創(chuàng)建一個目錄作為工作空間可以選中下面的復(fù)選框,以便下次不再詢問然后點擊“確定”,即可打開“MyEclipse”工具創(chuàng)建一個Java項目點擊“File”(文件)“New”(新建)“Project”(項目):出現(xiàn)以下界面(新建項目界面)選擇“選擇“Java項目”點擊“Next”(下一步),出現(xiàn)界面:給項目起名字給項目起名字給項目起一個名字:在這里我給項目起的名字是:JAVADemoT1點擊“Finish”(完成),項目就新建好了。手動創(chuàng)建Java源程序雙擊項目的名字或點擊項目名稱前面的“+”:JAVADemoT1,以展開項目,展開項目后用右鍵單擊“src”目錄如果在上面的界面中沒有看到src目錄(源文件夾),可以自己創(chuàng)建源文件夾,方法如下:右鍵點擊項目的名字,在彈出的對話框中選擇“New”(新建)“SourceFolder”(源文件夾,一定要創(chuàng)建源文件夾,不是文件夾),然后在彈出的對話框中填入一個文件夾名(src)即可。如下圖所示:出現(xiàn)菜單后,選擇“New”(新建)“File”(文件),出現(xiàn)以下界面:一定要在源文件夾中創(chuàng)建新的文件這里給文件起名字這里要選擇“src這里給文件起名字這里要選擇“src”我在這里給文件起名:HelloWorld.java文件名第一個字母要大寫文件名應(yīng)該是英文,不要使用中文文件名后面創(chuàng)建的類的類名要和文件名完全一樣文件名一定要以“.java”結(jié)尾(后綴、擴展名)編寫代碼按照規(guī)范編寫代碼:代碼的編寫會在以后的課程中詳細(xì)學(xué)習(xí),本講主要在控制臺中輸出相應(yīng)文字。編譯Java源程序這個過程在默認(rèn)情況下是自動的:“自動構(gòu)建“自動構(gòu)建”被鉤選如果“自動構(gòu)建”沒有鉤選,則需要手工編譯:選擇“構(gòu)建項目”即可用右鍵選中要構(gòu)建的項目,在彈出的菜單中選擇“BuildProject”(構(gòu)建項目)即可實現(xiàn)手工編譯運行程序選中要運行的JAVA程序,點擊右鍵,選擇“RunAs”(運行方式)選擇“JavaApplication”(Java應(yīng)用程序)運行程序即可運行我們編寫的代碼類名與文件名完全一樣類名與文件名完全一樣main方法是Java程序執(zhí)行的入口點第一個JAVA程序main方法是Java程序執(zhí)行的入口點關(guān)鍵字高亮顯示publicclassHelloWorld{關(guān)鍵字高亮顯示{和}一一對應(yīng),缺一不可 publicstaticvoidmain(String[]args){{和}一一對應(yīng),缺一不可 System.out.println("你好!中興3G!");從控制臺輸出信息 }從控制臺輸出信息main方法四要素必不可少}main方法四要素必不可少System.out.println();輸出內(nèi)容時,會在輸出后換行如果不想換行,可以使用System.out.print();使用“\n”可以實現(xiàn)在輸出中換行使用“\t”可以實現(xiàn)輸出一個制表位(一般是8個空格)Java編碼規(guī)范編碼一定要規(guī)范,這樣才能少出錯誤,提高得就快。去掉public,程序可以運行,但不規(guī)范;規(guī)范要求類名必須使用public修飾public修飾的類的名稱必須與Java文件同名public修飾的類的名稱必須與Java文件同名main方法作為程序入口,void必不可少Java對大小寫敏感每一條Java語句必須以分號結(jié)束注意:不要漏寫引號Java項目組織結(jié)構(gòu)PackageExplorer——包資源管理器用包組織Java源文件,類似于文件夾選擇菜單“Windows”(窗口)“ShowView”(顯示視圖)“PackageExplorer”(包資源管理器)即可打開包資源管理器包資源管理器JRE系統(tǒng)庫目錄:存放程序運行必須的系統(tǒng)庫文件包資源管理器JRE系統(tǒng)庫目錄:存放程序運行必須的系統(tǒng)庫文件Navigator——導(dǎo)航器選擇菜單“Windows”(窗口)“ShowView”(顯示視圖)“Navigator”(導(dǎo)航器)即可打開導(dǎo)航器導(dǎo)航器classes目錄:存放可執(zhí)行的字節(jié)碼文件src目錄:存放Java源文件導(dǎo)航器classes目錄:存放可執(zhí)行的字節(jié)碼文件src目錄:存放Java源文件注意:.classpath和.project文件是工程的配置文件,不要動它們。Java程序的注釋我們編寫的程序不僅僅是給自己看的,有時也需要讓別人改進(jìn),所以需要對寫過的代碼進(jìn)行注釋,就是自己看的代碼,也需要進(jìn)行注釋,要不然,過一段時間后,就不知道自己寫的代碼是什么意思,是做什么用的。要分析很久才能知道。浪費了時間。所以我們要從現(xiàn)在開始養(yǎng)成寫注釋的好習(xí)慣多行注釋以/*開始,以*/結(jié)束代碼示例:/**HelloWorld.java*2010-5-*第一個Java程序*/publicclassHelloWorld{publicstaticvoidmain(String[]args){System.out.println(“你好!中興3G!");}}單行注釋以//開始,以行末結(jié)束代碼示例:publicclassHelloWorld{publicstaticvoidmain(String[]args){//輸出消息到控制臺System.out.println(“你好!中興3G!");}}JavaAPI文檔這是一個JAVA程序的幫助文檔可以用于查詢所有的JAVA所提供的各種功能的格式和用法小結(jié)JAVA程序的開發(fā)步驟有哪幾步?編寫JAVA程序時,要注意哪些問題JAVA程序中的注釋已經(jīng)學(xué)習(xí)了哪兩種,格式分別是什么?總結(jié)[5分鐘]考核點什么是計算機程序?Java相關(guān)的技術(shù)有哪些?Java可以編寫哪兩類程序?Java程序的基本框架是什么?使用Eclipse開發(fā)Java程序的步驟是什么?如何在控制臺輸出一條信息?第2講JAVA標(biāo)識符、關(guān)鍵字和類型——變量、數(shù)據(jù)類型和運算符變量命名規(guī)則在生活中,我們給各種事物命名要符合一些規(guī)范,比如我們給人起名字,就要符合公安部的規(guī)定,要不然就不給上戶口。在Java語言中,變量命名同樣要符合一定規(guī)則如:money,score,name,sex變量命名規(guī)則:簡短且能清楚地表明變量的作用,通常第一個單詞的首字母小寫,其后單詞的首字母大寫。例如:myScore小結(jié):命名規(guī)范首字母小寫不能用數(shù)字開頭,只能用字母或“_”及“$”開頭只能包含字母、數(shù)字、“_”及“$”不能有相同的變量名不能用JAVA語言的關(guān)鍵字作為變量名關(guān)鍵字:在JAVA語言中有特殊意義的單詞在Eclipse工具中會改變顏色的單詞常見錯誤:沒有為聲明的變量賦值就使用:先聲明變量并賦值,然后才能使用變量名不能以“%”開始:要記住命名規(guī)范聲明兩個同名變量導(dǎo)致編譯錯誤:不能有相同的變量名變量小結(jié):定義變量有哪兩種方式?聲明的同時賦值先聲明,然后在使用之前賦值使用變量存儲以下MP3信息,并打印輸出品牌(brand):愛國者F928重量(weight):12.4電池類型(type):內(nèi)置鋰電池價格(price):499publicclassMP3{publicstaticvoidmain(String[]args){Stringbrand="愛國者F928"; //品牌doubleweight=12.4; //重量Stringtype="內(nèi)置鋰電池"; //電池類型intprice=499; //價格System.out.println("品牌:"+brand);System.out.println("重量:"+weight);System.out.println("電池類型:"+type);System.out.println("價格:"+price); }}第3講--流程控制(條件結(jié)構(gòu))boolean類型我們上次課程主要學(xué)習(xí)了int、double、char、String四種數(shù)據(jù)類型,在現(xiàn)實生活中除了要表示整數(shù)、小數(shù)、字符、字符串外,還有一些其他的情況:一件商品的真與假,錢的真與假,我們在JAVA中用什么來描述呢。這就是今天要學(xué)習(xí)的新的數(shù)據(jù)類型:boolean數(shù)據(jù)類型作用:boolean類型是用來描述真與假的數(shù)據(jù)類型一件商品是真貨還是假貨一個條件成立還是不成立,成立就是真,不成立就是假boolean(布爾)類型boolean類型的值:真:true假:false特點:boolean類型的值只有上面列出的兩個使用:用boolean類型描述:學(xué)員張三的考試成績是否比學(xué)員李四(80分)高publicclassJAVAT2Demo{ publicstaticvoidmain(String[]args){ //聲明兩個變量,分別存放張三和李四的成績 intlisi=80; intzhangsan=70; //聲明一個boolean類型的變量,存放比較的結(jié)果 booleanisBig; //獲取比較的結(jié)果 isBig=zhangsan>lisi; //輸出比較的結(jié)果 System.out.println("張三成績比李四高嗎?"+isBig); }}總結(jié):我們使用boolean數(shù)據(jù)類型來表示真和假邏輯運算符懶羊羊不僅僅學(xué)習(xí)了JAVA,還學(xué)習(xí)了音樂,如果他的JAVA成績大于90分,并且音樂成績大于80分,村長才就獎勵他;或者JAVA成績100分,并且音樂成績大于70,村長也獎勵他。我們怎么實現(xiàn)這個功能呢?我們可以使用邏輯運算符作用:用于連接條件表達(dá)式代碼示例:條件編寫:(score1>90&&score2>80)||(score1==100&&score2>70)運算符的優(yōu)先級:最高的優(yōu)先級:小括號,即()最低的優(yōu)先級:賦值運算符,即=優(yōu)先級順序:!>算術(shù)運算符>比較運算符>&&>||多使用小括號()控制優(yōu)先級完整代碼:publicclassHelloWorld03{ publicstaticvoidmain(String[]args){ intscore1=100;//懶羊羊的Java成績 intscore2=72;//懶羊羊的音樂成績 if((score1>90&&score2>80)||(score1==100&&score2>70)){ System.out.println("村長說:不錯,你可以休息三天"); } }}總結(jié):if條件結(jié)構(gòu)是先判斷再執(zhí)行邏輯運算符可以連接多個條件表達(dá)式小結(jié)1說出已學(xué)過的數(shù)據(jù)類型有哪些?int、double、char、boolean、String舉例說明已學(xué)過的運算符有哪些?賦值運算符、算術(shù)運算符、關(guān)系運算符、邏輯運算符if和if-else條件結(jié)構(gòu)執(zhí)行的順序是什么?if:如果條件表達(dá)式成立,執(zhí)行語句if-else:如果條件表達(dá)式成立,執(zhí)行語句1,如果不成立,執(zhí)行語句2示例:小布什買了一筐雞蛋,如果壞雞蛋少于5個,他就吃掉,否則他就去退貨publicclassXiaoJie1_1{ publicstaticvoidmain(String[]args){ intbadegg=6; if(badegg<5){ System.out.println("壞蛋少于5個,吃掉其余的!"); }else{ System.out.println("壞蛋大于等于5個,全部退掉!"); } }}用戶有兩個整數(shù)a、b,如果a能被b整除或a加b大于100,則輸出a,否則輸出bpublicclassXiaoJie1_2{ publicstaticvoidmain(String[]args){ inta=40; intb=70; if(a%b==0||(a+b)>100){ System.out.println("a的值是:"+a); }else{ System.out.println("b的值是:"+b); } }}三元運算符語法:x?y:z;其中y和z的數(shù)據(jù)類型必須是相互兼容的如都是int(整型)或String(字符串類型)其中x為boolean類型表達(dá)式,先計算x的值,若為true,則整個表達(dá)式的結(jié)果為表達(dá)式y(tǒng)的值,否則為表達(dá)式z的值。三元條件運算符相當(dāng)于簡單的if…else…語句示例: intscore=80; intx=100; Stringtype=score<60?"不及格":"及格" intflag=x>0?1:(x==0?0:-1); doublenum=3>5?9.9:8;最后一條語句就相當(dāng)于:doublenum;if(3>5){num=9.9;}else{ num=8;}案例:對學(xué)生的考試成績進(jìn)行判斷 成績>=60:及格成績<60:不及格代碼:publicclassHelloWorld12{ publicstaticvoidmain(String[]args){ intscore=69; Stringresult=score<60?"不及格":"及格"; System.out.println("張三的成績是:"+result); }}小結(jié)條件結(jié)構(gòu)分為以下三種情況使用if條件結(jié)構(gòu)if…else…結(jié)構(gòu)if…elseif…結(jié)構(gòu)switch結(jié)構(gòu)[20分鐘]switch結(jié)構(gòu)的使用問題:懶羊羊參加跳水大賽如果獲得第一名,將出任班長如果獲得第二名,將出任大隊長如果獲得第三名,將出任小組長否則,將留級可以使用if條件結(jié)構(gòu)實現(xiàn)publicclassHelloWorld08{ publicstaticvoidmain(String[]args){ intmingCi=3;//名次 if(mingCi==1){ System.out.println("出任班長"); }elseif(mingCi==2){ System.out.println("出任大隊長"); }elseif(mingCi==3){ System.out.println("出任小組長"); }else{ System.out.println("留級"); } }}更好的解決辦法:使用switch結(jié)構(gòu)解決作用:用來解決多個固定的值的判斷語法:使用switch結(jié)構(gòu)解決問題完整代碼:publicclassHelloWorld09{publicstaticvoidmain(String[]args){intmingCi=1;//名次switch(mingCi){case1: System.out.println("出任班長");break;case2: System.out.println("出任大隊長");break;case3: System.out.println("出任小組長");break;default: System.out.println("留級"); break;}}}總結(jié):每一個case必須由break結(jié)束case后面的常量必須各不相同switch后面小括號中表達(dá)式的值必須是整型或字符型比較switch結(jié)構(gòu)和多重if結(jié)構(gòu)相同點:都可以實現(xiàn)多分支結(jié)構(gòu)不同點:switch:只能處理等值的條件判斷,且條件是整型變量或字符變量的等值判斷多重if:處理在else部分還包含其它if結(jié)構(gòu),特別適合某個變量處于某個區(qū)間時的情況總結(jié)根據(jù)趙本山的考試成績,顯示所獲獎勵成績==100分,爸爸給他買輛車成績>=90分,媽媽給他買MP490分>成績>=60分,媽媽給他買本參考書成績<60分,什么都不買publicclassScoreTest{ publicstaticvoidmain(String[]args){ intscore=95;//成績 if(score==100){ System.out.println("他爸爸給他買輛車"); }elseif(score>=90){ System.out.println("他媽媽給他買MP4"); }elseif(score<90&&score>=60){ System.out.println("他媽媽給他買本參考書"); }else{ System.out.println("什么都不買"); } }}張三為他的手機設(shè)定了自動撥號按1:撥爸爸的號按2:撥媽媽的號按3:撥爺爺?shù)奶柊?:撥奶奶的號編程實現(xiàn)此業(yè)務(wù):publicclassDial{ publicstaticvoidmain(String[]args){ intno=1; switch(no){ case1: System.out.println("撥爸爸的號"); break; case2: System.out.println("撥媽媽的號"); break; case3: System.out.println("撥爺爺?shù)奶?); break; case4: System.out.println("撥奶奶的號"); break; default: break; } }}注意事項case后面的值只能是字符或者整型;case每個值不能相同;switch語句不能判斷某個范圍,如果要判斷某個范圍需使用if語句;case和default子句的先后順序可以變換,不會影響程序的執(zhí)行結(jié)果;default子句可以省略;case語句后如果沒有break,則結(jié)果可能不準(zhǔn)確??偨Y(jié)[10分鐘]考核點什么數(shù)據(jù)類型可以描述真和假?描述幾種分支結(jié)構(gòu)的語法和執(zhí)行過程?什么情況下會使用多重if條件結(jié)構(gòu)?多重if條件結(jié)構(gòu)和switch結(jié)構(gòu)的區(qū)別和適用場合是什么?第4講--流程控制(循環(huán)結(jié)構(gòu)1)回顧:要注意的要點:break關(guān)鍵字不是必須的,但是如果沒有,當(dāng)前匹配的case不會結(jié)束,會繼續(xù)執(zhí)行,直到遇到break為止?;蛘邎?zhí)行完所有的語句。才結(jié)束switch結(jié)構(gòu)。default塊也不是必須的。可以沒有。如果沒有,當(dāng)沒有case可以匹配時,就什么也不做(沒有可執(zhí)行的代碼)if…else…語句:條件成立時,執(zhí)行if語句塊;條件不成立時,執(zhí)行else語句塊鍵盤輸入[15分鐘]功能實現(xiàn)在類(publicclassxxx{……}這些代碼)的前面輸入:importjava.util.*;或者importjava.util.Scanner;在需要接受從鍵盤輸入數(shù)據(jù)的代碼處輸入:Scannerinput=newScanner(System.in);根據(jù)需要接受輸入的數(shù)據(jù)類型利用第二步創(chuàng)建的input的相應(yīng)方法實現(xiàn)從控制臺接收數(shù)據(jù);例如:要接受輸入一個整型的數(shù)據(jù),代碼這樣寫:intnumber=input.nextInt();要接受輸入一個String類型的數(shù)據(jù),代碼這樣寫:Stringname=input.next();接受double類型的數(shù)據(jù),代碼:doubleprice=input.nextDouble();這樣就把你從鍵盤輸入的數(shù)據(jù)保存到聲明的變量里了一般在接受輸入代碼的前面提醒用戶輸入,即在這句代碼前加 :System.out.println(“請輸入一個整數(shù)”);示例:請輸入一個整數(shù),實現(xiàn)一個數(shù)字加密器,加密規(guī)則是:加密結(jié)果=(整數(shù)*10+5)/2+3.14159加密結(jié)果仍為一整數(shù)完整代碼:importjava.util.*;publicclassScannerInput{ /** *作者:鐘慧濤*日期:2010–7–18*功能描述:輸入一個整數(shù),實現(xiàn)加密 */ publicstaticvoidmain(String[]args){ intnum; System.out.println("請輸入一個整數(shù),便于實現(xiàn)加密"); //從控制臺接收一個數(shù) Scannerinput=newScanner(System.in); //用nextInt()方法獲取控制臺輸入的一個整數(shù) num=input.nextInt(); //通過加密公式得出結(jié)果 intresult=(int)((num*10+5)/2+3.14159); //輸出數(shù)字及加密后的結(jié)果 System.out.println(num+"實現(xiàn)加密后的結(jié)果為:"+result); }}while循環(huán)語法講解:關(guān)鍵字while后面的小括號中是循環(huán)條件循環(huán)條件是一個布爾表達(dá)式(條件表達(dá)式),它的值為布爾類型“真”或“假”,如i<=100。只有兩個值:true和false{}(大括號)中的語句統(tǒng)稱為循環(huán)操作,又稱為循環(huán)體。注意:在循環(huán)條件的小括號后面是沒有分號的,整個語法結(jié)構(gòu)是一個整體,不能分割。注意事項:如果第一次判斷循環(huán)條件時,循環(huán)條件就不滿足,循環(huán)將不會執(zhí)行。特點:先判斷,再執(zhí)行總結(jié):while循環(huán)在循環(huán)條件成立時,執(zhí)行循環(huán)操作,否則就不再執(zhí)行循環(huán)操作。示例4:錄入班級人數(shù)和學(xué)員成績,計算班級學(xué)員的平均成績分析:循環(huán)變量的初始值:從第一個開始輸入:inti=1;循環(huán)條件:目前錄入的成績數(shù)目小于總?cè)藬?shù)使用i做計數(shù)器,每循環(huán)一次就遞增1,即每輸入一個學(xué)員成績就遞增1只要i小于等于班級總?cè)藬?shù),就繼續(xù)從控制臺接收輸入的學(xué)員成績循環(huán)操作:錄入學(xué)生成績,并累加求和循環(huán)變量的改變:每循環(huán)一次,人數(shù)就要加1:i++(作為循環(huán)操作的一部分,寫在while循環(huán)的大括號里)代碼實現(xiàn):publicclassHelloWorld5{ publicstaticvoidmain(String[]args){ StringclassNo;//班級號 intstuNum;//班級的學(xué)生人數(shù) intscore;//學(xué)生分?jǐn)?shù) intsum=0;//學(xué)生分?jǐn)?shù)總和 intavg;//學(xué)生成績平均值 System.out.print("請輸入班級號:"); Scannerinput=newScanner(System.in); classNo=input.next(); System.out.print("請輸入該班級的學(xué)員總數(shù):"); stuNum=input.nextInt(); inti=1; while(i<=stuNum){ System.out.print("請輸入學(xué)號"+i+"的成績:"); score=input.nextInt();//從鍵盤接收學(xué)生成績 sum=sum+score; i++; } avg=sum/stuNum; System.out.println("該班級學(xué)員的平均成績?yōu)椋?+avg); }}示例5:還是吃餃子,不過這次可以隨便吃,只不過每吃一個就要問一下,還要不要吃下一個,如果要吃,就再吃一個,就這樣循環(huán),直到不想吃才停下來。分析:這次循環(huán)的初始條件是什么呢就是第一次回答要吃:“y”,只要回答的是“y”,就可以再吃下一個,如果回答了“n”,當(dāng)然就不吃了所以我們要在控制臺上接收輸入的字符串“y”或是“n”我們在前面用input.nextInt()將控制臺輸入的字符串轉(zhuǎn)換成int類型的數(shù)據(jù)再賦值給int類型的變量,現(xiàn)在我們要直接得到字符串從控制臺獲得一個字符串:Stringanswer=input.next();循環(huán)條件:要判斷回答的是不是“y”,只要回答的是“y”就要吃餃子(繼續(xù)循環(huán)),回答“n”才不吃了(結(jié)束循環(huán))比較兩個String類型的值是否相等的方法:使用字符串的equals方法equals語法:aString.equals(bString);//比較String類型變量aString是否等于//bString,如果相等,結(jié)果為true;如果不相等,結(jié)果為false循環(huán)操作:當(dāng)然是吃餃子了吃完餃子后還要再問一下,要不要再吃一個用變量接收控制臺輸入的回答循環(huán)變量的變化:用變量接收控制臺輸入的回答,如果沒有變化:回答“y”,那就要繼續(xù)循環(huán),如果回答了“n”,就結(jié)束循環(huán)了(條件不成立了)代碼實現(xiàn):importjava.util.Scanner;publicclassHelloWorld1{ publicstaticvoidmain(String[]args){ Scannerinput=newScanner(System.in); System.out.print("要不要吃餃子:"); Stringanswer=input.next(); while(answer.equals("y")){ System.out.println("吃餃子。"); System.out.print("還吃餃子么?"); answer=input.next(); } }}我們改動一下上面的例子,改變提問的方式:不問要不要吃餃子了,問他吃飽了沒有,如果沒有,也就是回答“n”,就給他吃餃子,否則就不給他吃了。分析:這里其實只是條件發(fā)生的變化:以前是和“y”比較,現(xiàn)在是和“n”比較方法1:把answer.equals("y")中的“y”改成“n”方法2:仍然和“y”比較,可以在比較結(jié)束后對結(jié)果取反,在前面加個“!”就行了。使用while循環(huán)的常見問題永遠(yuǎn)都不會退出的循環(huán)稱為死循環(huán):一定要記得循環(huán)操作中要有改變循環(huán)條件的語句:publicclassHelloWorld{ publicstaticvoidmain(String[]args){ inti=0; while(i<4){ System.out.println("歡迎中興3G學(xué)員"); //這里缺了什么?(應(yīng)該在這里改變循環(huán)條件:i++) } }}注意檢查循環(huán)次數(shù)是否滿足需求:如果不滿足,要進(jìn)行相應(yīng)的修改publicclassHelloWorld{ publicstaticvoidmain(String[]args){ inti=1; while(i<4){//條件應(yīng)該是:i<5 System.out.println("歡迎中興3G學(xué)員"); i++; } }}注意:如果一開始條件就不滿足,while循環(huán)一次都不執(zhí)行publicclassHelloWorld{ publicstaticvoidmain(String[]args){ inti=1; while(i>5){//條件應(yīng)該是:i<5 System.out.println("歡迎中興3G學(xué)員"); i++; } }}小結(jié)2006年培養(yǎng)學(xué)員8萬人,每年增長25%,請問按此增長速度,到哪一年培訓(xùn)學(xué)員人數(shù)將達(dá)到20萬人?分析:循環(huán)初始條件:2006年,有8萬人循環(huán)條件:培訓(xùn)學(xué)員人數(shù)沒有達(dá)到20萬人循環(huán)操作:每次增加25%,并累加求和,還要算出當(dāng)年是哪一年這里的循環(huán)操作里同時也包含了循環(huán)變量的改變代碼publicclassHelloWorld{ publicstaticvoidmain(String[]args){ intyear=2006;//年份 intstudents=80000;//學(xué)生數(shù) while(students<200000){ students=(int)(students*(1+0.25)); year++; System.out.println(year+"年,培訓(xùn)"+students+"人"); } System.out.println(year+"年,年培訓(xùn)人到達(dá)20萬人"); }}小結(jié):while循環(huán)可以解決固定循環(huán)次數(shù)的問題也可以解決沒有固定循環(huán)次數(shù)的問題,而且主要是用來解決沒有固定循環(huán)次數(shù)的問題while循環(huán)是先判斷,后執(zhí)行do-while循環(huán)的使用語法分析:以關(guān)鍵字do開頭,然后是大括號括起來的循環(huán)操作;然后才是while關(guān)鍵字,和緊隨的小括號括起來的循環(huán)條件。小括號后面以“;”結(jié)束。執(zhí)行順序:先執(zhí)行一遍循環(huán)操作,然后判斷循環(huán)條件,如果循環(huán)條件滿足,循環(huán)繼續(xù)執(zhí)行,否則退出循環(huán)。特點:先執(zhí)行,再判斷代碼:importjava.util.Scanner;publicclassDemo004{先執(zhí)行一遍循環(huán)操作 publicstaticvoidmain(String[]args){先執(zhí)行一遍循環(huán)操作 Scannerinput=newScanner(System.in); Stringanswer;循環(huán)條件 do{循環(huán)條件 System.out.println("吃了一個餃子!"); System.out.print("吃飽了沒有?(y/n):"); answer=input.next(); }while(!answer.equals("y")); System.out.println("不吃餃子了!"); }}總結(jié):連續(xù)錄入學(xué)生姓名,輸入“q”則系統(tǒng)退出publicclassHelloWorld{ publicstaticvoidmain(String[]args){ Stringname;//姓名 Scannerinput=newScanner(System.in); do{ System.out.print("請輸入學(xué)生姓名:"); name=input.next();//從控制臺接收輸入的姓名 }while(!name.equals("q")); System.out.println("程序結(jié)束"); }}比較while循環(huán)和do-while循環(huán)執(zhí)行次序不同:while循環(huán)先判斷,再執(zhí)行;do-while循環(huán)先執(zhí)行一次,再判斷。初始情況不滿足循環(huán)條件時while循環(huán)一次都不會執(zhí)行do-while循環(huán)不管任何情況都至少執(zhí)行一次小結(jié)使用do-while實現(xiàn):輸出攝氏溫度與華氏溫度的對照表,要求它從攝氏溫度0度到250度,每隔20度為一項,對照表中的條目不超過10條。轉(zhuǎn)換關(guān)系:華氏溫度=攝氏溫度*9/5.0+32提示:循環(huán)操作:計算攝氏溫度,并輸出對照條目循環(huán)條件:條目<=10&&攝氏溫度<=250代碼:publicclassTempTable{ publicstaticvoidmain(String[]args){ doublef; //華氏 doublec=0; //攝氏 intcount=1; //條目 System.out.println("攝氏溫度"+"\t華氏溫度"); do{ f=c*9/5.0+32;//轉(zhuǎn)換 System.out.println(c+"\t"+f); c=c+20; count++; }while(count<=10&&c<=250); }}總結(jié)[10分鐘]考核點如何從控制臺接收用戶輸入的信息?循環(huán)結(jié)構(gòu)的特點是什么?循環(huán)條件:循環(huán)所要滿足的條件循環(huán)操作:循環(huán)結(jié)構(gòu)中反復(fù)進(jìn)行相同的或類似的一系列操作。循環(huán)操作要用大括號括起來;循環(huán)條件要用小括號括起來,是一個boolean值while循環(huán)和do-while循環(huán)有什么區(qū)別?while循環(huán):先判斷,再執(zhí)行,如果條件不成立,一次也不執(zhí)行do-while循環(huán):先執(zhí)行,再判斷,不論條件是否成立,最少執(zhí)行一次第5講--流程控制(循環(huán)結(jié)構(gòu)2)回顧:代碼填空:實現(xiàn)整數(shù)反轉(zhuǎn)publicclassHuiwen{ publicstaticvoidmain(String[]args){ intval=12345; intr_digit; System.out.print("反轉(zhuǎn)后的整數(shù)是:"); while(){ ; ; ; } }}分析:要從最后一位開始得到每一位的數(shù)字:方法:數(shù)字取10的模(%),也就是余數(shù),得到最后一位數(shù)字。然后將這個數(shù)字輸出到控制臺。每次取完最后一位數(shù)字后,除以10來得到剩下的數(shù)字。循環(huán)條件:只要剩下的數(shù)字不為0,就循環(huán)執(zhí)行第1、2、3步。應(yīng)當(dāng)填寫如下內(nèi)容:while(val!=0){ r_digit=val%10; System.out.print(r_digit); val=val/10;}預(yù)習(xí)檢查:什么時候選用for循環(huán)結(jié)構(gòu)?在循環(huán)次數(shù)固定的情況下一般選用for循環(huán)結(jié)構(gòu)for循環(huán)結(jié)構(gòu)的基本語法和執(zhí)行順序是什么? 初始化循環(huán)變量判斷循環(huán)條件是否成立如果條件成立,執(zhí)行循環(huán)體;條件不成立,結(jié)束循環(huán)執(zhí)行完循環(huán)體后,對循環(huán)變量進(jìn)行迭加,再次判斷循環(huán)條件,從第2步開始再執(zhí)行什么是for循環(huán)循環(huán)結(jié)構(gòu)分析:循環(huán)結(jié)構(gòu)的主要作用是反復(fù)執(zhí)行一段代碼,直到設(shè)置的條件不再滿足。循環(huán)結(jié)構(gòu)四個組成部分:⑴初始部分:設(shè)置循環(huán)的初始狀態(tài)。比如:我們設(shè)置記錄循環(huán)次數(shù)的變量i為0;⑵循環(huán)體:重復(fù)執(zhí)行的代碼,即輸出“我是最棒的!”;⑶迭代部分:下一次循環(huán)開始前要執(zhí)行的部分,在while循環(huán)中它作為循環(huán)體的一部分。比如:使用“i=i+1;”進(jìn)行循環(huán)次數(shù)的累加;⑷循環(huán)條件:判斷是否繼續(xù)循環(huán)的條件。比如:使用“i<100”判斷循環(huán)次數(shù)是否已經(jīng)達(dá)到100次。結(jié)論:在for循環(huán)結(jié)構(gòu)中,這幾個部分同樣必不可少,不然循環(huán)就會出現(xiàn)錯誤。for循環(huán)的語法for(表達(dá)式1;表達(dá)式2;表達(dá)式3){ //循環(huán)執(zhí)行的語句}語法講解:for是這個循環(huán)結(jié)構(gòu)的關(guān)鍵字表達(dá)式1:是賦值語句功能:循環(huán)結(jié)構(gòu)的初始部分,為循環(huán)變量賦初值表達(dá)式2:條件語句功能:循環(huán)結(jié)構(gòu)的循環(huán)條件,只有條件為true,循環(huán)體才能執(zhí)行表達(dá)式3:賦值語句,通常使用“++”或“--”運算符功能:循環(huán)結(jié)構(gòu)的迭代部分,通常用來修改循環(huán)變量的值for關(guān)鍵字后面小括號中的3個表達(dá)式必須用“;”(分號)隔開。執(zhí)行順序:執(zhí)行初始部分:inti=0;(循環(huán)開始時執(zhí)行一次,以后不再執(zhí)行);執(zhí)行循環(huán)條件判斷:i<100;根據(jù)條件判斷的結(jié)果:如果為true,執(zhí)行循環(huán)操作如果為false,退出循環(huán),后面步驟不再執(zhí)行執(zhí)行迭代部分,改變循環(huán)變量的值:i++;重復(fù)第2、3、4步,依次進(jìn)行,直到退出for循環(huán)結(jié)構(gòu)。for循環(huán)特點先判斷,后執(zhí)行循環(huán)次數(shù)固定(也可以解決循環(huán)次數(shù)不固定的問題,不過一般用于解決循環(huán)次數(shù)固定的問題)簡潔明了for循環(huán)作用解決需要多次執(zhí)行操作的問題,用于次數(shù)固定的循環(huán)。提高工作效率和減少代碼編寫量。for循環(huán)使用場合在解決有固定次數(shù)的循環(huán)問題時,使用for循環(huán)結(jié)構(gòu)。for循環(huán)結(jié)構(gòu)的使用通過示例來學(xué)習(xí)如何使用for循環(huán)循環(huán)錄入某學(xué)員S1的5門課成績,計算平均分使用for循環(huán)結(jié)構(gòu)的步驟分析循環(huán)條件和循環(huán)操作套用for語法寫出代碼檢查循環(huán)是否能夠退出分析:循環(huán)次數(shù):5循環(huán)條件:循環(huán)的次數(shù)不足5,繼續(xù)循環(huán)循環(huán)操作:錄入成績,計算成績之和代碼:importjava.util.*;/***Demo003.java演示for循環(huán),錄入5門課成績,并計算平均值*/publicclassDemo003{ publicstaticvoidmain(String[]args){初始值:i=0循環(huán)條件:i<5循環(huán)變量改變:i++ intscore;初始值:i=0循環(huán)條件:i<5循環(huán)變量改變:i++ intsum=0; //成績之和 intavg; //平均分 Scannerinput=newScanner(System.in); System.out.print("輸入學(xué)生姓名:"); Stringname=input.next(); //輸入姓名 for(inti=0;i<5;i++){ //循環(huán)5次錄入5門課成績 System.out.print("請輸入5門功課中第"+(i+1)+"門課的成績:"); score=input.nextInt();循環(huán)操作執(zhí)行5次 sum=sum+score;循環(huán)操作執(zhí)行5次 } avg=sum/5;//計算平均分 System.out.println(name+"的平均分是:"+avg); }}代碼分析:在初始部分:聲明循環(huán)變量i,并初始化為0,用來記錄循環(huán)次數(shù)在條件判斷部分:循環(huán)條件:i<5在迭代部分:對循環(huán)變量進(jìn)行迭代:i++在循環(huán)操作部分(循環(huán)體):要進(jìn)行的循環(huán)操作執(zhí)行過程:執(zhí)行初始部分:inti=0判斷循環(huán)條件:如果為true,執(zhí)行一次循環(huán)體循環(huán)體結(jié)束后,執(zhí)行迭代部分:i++再判斷循環(huán)條件是否成立,如果為true,繼續(xù)執(zhí)行循環(huán)體直到循環(huán)條件變成false,退出循環(huán)小結(jié):在for循環(huán)結(jié)構(gòu)中:表達(dá)式1只執(zhí)行一次,表達(dá)式2和表達(dá)式3則可能執(zhí)行多次,循環(huán)體可能多次執(zhí)行,也可能一次也不執(zhí)行。for結(jié)構(gòu)的其他形式輸出如圖所示加法表分析:這是一個根據(jù)輸入的整數(shù)值來輸出一張加法表循環(huán)初始化:i=0;j=輸入值循環(huán)條件:i<=輸入值循環(huán)操作:計算i+j循環(huán)變量的改變:i++,j--代碼示例:importjava.util.*;/***Demo004.java演示for循環(huán)的復(fù)雜形式*/publicclassDemo004{ publicstaticvoidmain(String[]args){ inti,j; Scannerinput=newScanner(System.in); System.out.print("請輸入一個值:"); intval=input.nextInt(); System.out.println("根據(jù)這個值可以輸出以下加法表:"); for(i=0,j=val;i<=val;i++,j--){ System.out.println(i+"+"+j+"="+(i+j));表達(dá)式3表達(dá)式1 }表達(dá)式3表達(dá)式1 }}特點:表達(dá)式1中可以聲明多個同一類型的變量并賦值,用“,”隔開表達(dá)式3可以是用“,”隔開的多個表達(dá)式,運算順序從左到右for循環(huán)常見問題使用for循環(huán)要注意的幾個問題:for(<初始化循環(huán)變量>;<循環(huán)條件>;<修改循環(huán)變量的值>){<循環(huán)體語句>;}關(guān)鍵字for后面小括號中的兩個“;”都不可以省略。關(guān)鍵字for后面小括號中除了兩個“;”以外都可以省略。如果表達(dá)式1省略,循環(huán)變量的初始值在for語句之前由賦值語句取得缺少初始化循環(huán)變量for(;i<10;i++){System.out.println("這是"+i);}這段代碼沒有對變量i進(jìn)行初始化,會出現(xiàn)編譯錯誤缺少條件判斷語句for(inti=0;;i++){System.out.println("這是"+i);}編譯正確,但是缺少循環(huán)條件,造成死循環(huán)缺少迭代部分for(inti=0;i<10;){System.out.println("這是"+i);i++;}編譯通過,但是循環(huán)變量的值無變化,造成死循環(huán)省略表達(dá)式3,在循環(huán)體內(nèi)應(yīng)設(shè)法改變循環(huán)變量的值以結(jié)束循環(huán)缺少初始化循環(huán)變量、條件判斷語句、迭代部分for(;;){System.out.println("這是測試");}表達(dá)式全省略,無條件判斷,循環(huán)變量無改變,應(yīng)在循環(huán)體內(nèi)設(shè)法結(jié)束循環(huán),否則會造成死循環(huán)小結(jié)問題:求1~100之間不能被3整除的數(shù)之和(使用for循環(huán)結(jié)構(gòu))分析:初始化部分:inti=1循環(huán)條件:只要整數(shù)不超過100,循環(huán)就不會停止:i<=100迭代部分:i每循環(huán)一次增加1:i++循環(huán)操作:判斷i是不是能被3整除,如果能整除,就累加代碼:publicclassDemo005{ publicstaticvoidmain(String[]args){ intsum=0;//聲明變量保存累加后的和 for(inti=1;i<=100;i++){ if(i%3!=0){ sum=sum+i; } } System.out.println("和是:"+sum); }}知識點2:break語句[10分鐘]Java中有三種跳轉(zhuǎn)形式:break:停止continue:繼續(xù)return:返回如何使用break語句用break語句解決問題:循環(huán)錄入某學(xué)生5門課的成績并計算平均分,如果某分?jǐn)?shù)錄入為負(fù),停止錄入并提示錄入錯誤循環(huán)錄入成績,判斷錄入正確性:錄入錯誤,使用break語句立刻跳出循環(huán);否則,累加求和importjava.util.Scanner;/***Demo010.java演示break,錄入錯誤退出*/publicclassDemo010{ publicstaticvoidmain(String[]args){ intscore;//每門課的成績 intsum=0;//成績之和 intavg;//平均分 booleanwrong=true; Scannerinput=newScanner(System.in); System.out.print("輸入學(xué)生姓名:"); Stringname=input.next();//輸入姓名 for(inti=0;i<5;i++){//循環(huán)5次錄入5門課成績 System.out.print("請輸入5門功課中第"+(i+1)+"門課的成績:"); score=input.nextInt(); if(score<0){ wrong=false; break; }對錄入的分?jǐn)?shù)進(jìn)行判斷,如果小于0,標(biāo)記出錯狀態(tài),并立即跳出整個for循環(huán) sum=sum+score;對錄入的分?jǐn)?shù)進(jìn)行判斷,如果小于0,標(biāo)記出錯狀態(tài),并立即跳出整個for循環(huán) } if(wrong){ avg=sum/5;//計算平均分 System.out.println(name+"的平均分是:"+avg); }else{ System.out.println("抱歉,分?jǐn)?shù)錄入錯誤,請重新進(jìn)行錄入!"); } }}小結(jié)break語句總結(jié):break語句用于終止某個循環(huán),使程序跳到循環(huán)體外的下一條語句。在循環(huán)中位于break后的語句將不再執(zhí)行break語句可以用在for、while、do...while循環(huán)中break語句通常與if條件結(jié)構(gòu)一起使用break一般位于if條件結(jié)構(gòu)的最后一句示例:1~10之間的整數(shù)相加,得到累加值大于20的當(dāng)前數(shù)分析:使用循環(huán)進(jìn)行累加,從1到10判斷累加值是否大于20如果大于20,則跳出循環(huán),并打印當(dāng)前值代碼:publicclassDemo002{ publicstaticvoidmain(String[]args){ intsum=0;//聲明變量表示累加的和 for(inti=1;i<=10;i++){ sum=sum+i;//累加 if(sum>20){ System.out.print("當(dāng)前數(shù)是:"+i); break;如果大于20,則跳出循環(huán),并打印當(dāng)前值 }如果大于20,則跳出循環(huán),并打印當(dāng)前值 } }}知識點3:continue語句[10分鐘]如何使用continue語句循環(huán)錄入Java課的學(xué)生成績,統(tǒng)計分?jǐn)?shù)大于等于80分的學(xué)生比例分析:通過循環(huán),獲得分?jǐn)?shù)大于等于80分的學(xué)生人數(shù)num判斷:如果成績<80,不執(zhí)行num++,直接進(jìn)入下一次循環(huán)在循環(huán)中要對錄入的分?jǐn)?shù)進(jìn)行判斷,如果小于80,跳出本次循環(huán),執(zhí)行下一次循環(huán)代碼:importjava.util.Scanner;publicclassDemo002{ publicstaticvoidmain(String[]args){ intscore;//成績 inttotal;//班級總?cè)藬?shù) intnum=0;//成績大于或等于80分的人數(shù) Scannerinput=newScanner(System.in); System.out.print("輸入班級總?cè)藬?shù):"); total=input.nextInt();//輸入班級總數(shù) for(inti=0;i<total;i++){ System.out.print("請輸入第"+(i+1)+"位學(xué)生的成績:"); score=input.nextInt(); if(score<80){對錄入的分?jǐn)?shù)進(jìn)行判斷,如果小于80,跳出本次循環(huán),執(zhí)行下一次循環(huán) continue;對錄入的分?jǐn)?shù)進(jìn)行判斷,如果小于80,跳出本次循環(huán),執(zhí)行下一次循環(huán) } num++; } System.out.println("80分以上的學(xué)生人數(shù)是:"+num); doublerate=(double)num/total*100; System.out.println("80分以上的學(xué)生所占的比例為:"+rate+"%"); }小結(jié)continue:只能用在循環(huán)結(jié)構(gòu)中continue作用:跳過循環(huán)體中剩余的語句而執(zhí)行下一次循環(huán)通常與if條件語句一起使用,加速循環(huán)示例:求1~10之間的所有偶數(shù)和分析:使用循環(huán)進(jìn)行累加,循環(huán)的范圍是從1至10判斷當(dāng)前數(shù)是否為偶數(shù)如果為奇數(shù)跳過,執(zhí)行下一個循環(huán),如果為偶數(shù),進(jìn)行累加代碼:publicclassDemo002{ publicstaticvoidmain(String[]args){ intsum=0;//定義一個變量,進(jìn)行累加 for(inti=1;i<=10;i++){ if(i%2==1){ continue;//如果i為奇數(shù),結(jié)束本次循環(huán),進(jìn)行下一次循環(huán) } sum=sum+i; } System.out.print("1--10之間的偶數(shù)和是:"+sum); }}知識點4:循環(huán)結(jié)構(gòu)總結(jié)[15分鐘]循環(huán)結(jié)構(gòu)三種循環(huán)都有4個必不可少的部分:初始部分循環(huán)條件循環(huán)體迭代部分while和for相同,先進(jìn)行判斷,后執(zhí)行循環(huán)體內(nèi)容do…while是先執(zhí)行,后判斷,至少執(zhí)行一次各種循環(huán)結(jié)構(gòu)的執(zhí)行順序適用情況:對于循環(huán)次數(shù)確定的情況,通常使用for循環(huán)對于循環(huán)次數(shù)不確定的情況:如果不要求先執(zhí)行一次,用while循環(huán)如果要求先執(zhí)行一次,用do…while循環(huán)控制流語句小結(jié)流程控制:用于引導(dǎo)程序的執(zhí)行。順序結(jié)構(gòu):語句順序執(zhí)行已經(jīng)學(xué)過的控制流程語句:分支結(jié)構(gòu):語句在滿足條件下執(zhí)行if,if…else,if…elseif…else,switch循環(huán)結(jié)構(gòu):語句在滿足條件下循環(huán)執(zhí)行多次while,do…while,for跳轉(zhuǎn)語句:允許程序跳躍執(zhí)行break,continue總結(jié)[10分鐘]總結(jié)for循環(huán)結(jié)構(gòu)如何執(zhí)行?在循環(huán)中使用什么方式跳出或終止循環(huán)?break與continue之間的差別是什么?第6講--總結(jié)復(fù)習(xí)課1本講任務(wù)使用Java應(yīng)用程序?qū)崿F(xiàn)以下功能:求兩個自然數(shù)的最大公約數(shù)百元百雞問題喝汽水問題水仙花數(shù)99乘法表打印圖形質(zhì)數(shù)判斷問題:判斷一個自然數(shù)是否是質(zhì)數(shù)本講目標(biāo)學(xué)會使用Eclipse調(diào)試工具進(jìn)行程序調(diào)試通過案例總結(jié)復(fù)習(xí)前5講內(nèi)容本講重點使用Eclipse調(diào)試工具進(jìn)行程序調(diào)試復(fù)習(xí)循環(huán)結(jié)構(gòu)和條件結(jié)構(gòu)本講難點JAVA基本語法的綜合使用回顧、預(yù)習(xí)檢查[10分鐘]回顧:什么是程序?什么是變量?已經(jīng)學(xué)習(xí)的數(shù)據(jù)類型有哪些?if條件有哪三種形式?循環(huán)結(jié)構(gòu)有哪三種形式?預(yù)習(xí)檢查:調(diào)試的基本步驟是哪幾步?什么叫最大公約數(shù)?什么是水仙花數(shù)?什么是質(zhì)數(shù)?課程知識點講解:知識點1:程序調(diào)試[20分鐘]程序調(diào)試我們寫好了程序,有時候會出現(xiàn)一些問題。其實,在實際工作中,我們把代碼寫完后,一般都會出現(xiàn)這樣或那樣的問題。那么我們怎么找到問題并解決呢?我們遇到問題后,總是希望:程序執(zhí)行時忽閃一下就運行結(jié)束,怎么讓程序一步一步運行?通過程序調(diào)試修正錯誤:使用do-while打印5次“你好中興3G學(xué)員!publicclassDemoTest01{ publicstaticvoidmain(String[]args){ inti=1; do{ System.out.println("你好中興3G學(xué)員!"); i=i+1;//即i++ }while(i<5); }}上面的代碼只打印了4次!怎么用調(diào)試的方法查找錯誤呢?程序調(diào)試的步驟分析出錯位置,設(shè)置斷點單步運行觀察變量發(fā)現(xiàn)問題修正代碼,重新運行解決問題具體實施步驟1:分析出錯位置,設(shè)置斷點,然后,點擊工作臺上按鈕,啟動調(diào)試斷點:程序在運行時會暫停下來的位置,一般是某行語句。設(shè)置斷點:雙擊對應(yīng)代碼行的左側(cè)邊欄即可。取消斷點:雙擊設(shè)置好的斷點即可步驟2:單步運行調(diào)試啟動后,運行到設(shè)置斷點的代碼行將停住點擊按鈕可以單步運行程序,觀察程序運行過程還可以使用“F6”功能鍵運行單步跳過代碼運行到哪一行,左側(cè)邊欄就會有一個藍(lán)色的小箭頭指示,同時該行代碼的背景色變成淡綠色步驟3:觀察變量單步運行時可以在“變量”視圖中看到變量當(dāng)前的值當(dāng)變量的值發(fā)生變化時,變量和變量的值所在行的背景色會改變,可以提醒我們注意步驟4:發(fā)現(xiàn)問題變量i值變?yōu)?時就退出了循環(huán),循環(huán)只進(jìn)行4次步驟5:修正代碼,重新運行修改循環(huán)條件為:i<=5步驟6:解決問題小結(jié)調(diào)試——程序員70%時間在做的事情:所以調(diào)試是非常重要的程序調(diào)試的目的:找出缺陷原因,修正缺陷調(diào)試的主要方法設(shè)置斷點單步執(zhí)行觀察變量調(diào)試的主要步驟分析出錯位置,設(shè)置斷點單步運行觀察變量的值發(fā)現(xiàn)問題修正代碼,重新運行解決問題知識點2:程序調(diào)試示例[15分鐘]利用程序調(diào)試對比break和continue對比方法:通過Eclipse單步運行,觀察程序執(zhí)行順序變量值的變化觀察案例案例1:1~10之間的整數(shù)相加,得到累加值大于20的當(dāng)前數(shù)案例2:求1~10之間的所有偶數(shù)和觀察案例1單步運行案例1進(jìn)行代碼跟蹤設(shè)置斷點點擊按鈕,啟動調(diào)試點擊按鈕,程序單步執(zhí)行觀察程序執(zhí)行流程、變量sum和i的變化我們通過對案例的跟蹤觀察,會發(fā)現(xiàn):break關(guān)鍵字會中斷當(dāng)前循環(huán),即跳出循環(huán),使循環(huán)結(jié)束觀察案例2單步運行案例2進(jìn)行代碼跟蹤設(shè)置斷點點擊按鈕,啟動調(diào)試點擊按鈕,程序單步執(zhí)行觀察程序執(zhí)行流程、變量sum和i的變化我們通過對案例的跟蹤觀察,會發(fā)現(xiàn):continue關(guān)鍵字會結(jié)束本次循環(huán),回到循環(huán)開始的地方,直接進(jìn)行下一次循環(huán)操作小結(jié)循環(huán)中使用continue和break的區(qū)別break:會跳出循環(huán)continue:會中止本次循環(huán),繼續(xù)下一次循環(huán)代碼閱讀:輸出值是多少?如果將break替換成continue,輸出值又為多少?intsum=0; for(inti=0;i<5;i++){ if(i==3){ break; } sum=sum+i; } System.out.println("sum="+sum);break:輸出3continue:輸出7知識點3:案例[40分鐘]課堂上只講解前3個案例,其它案例如有課時安排,可以講解,如無課時安排,要求學(xué)生自己完成。所有案例都要求學(xué)生完成。求兩個自然數(shù)的最大公約數(shù)解決思路1:從1開始循環(huán),每次把符合要求的值存儲在一個變量中,最后存儲起來的就是最大的約數(shù)完整代碼示例:publicclassDemo0011{ publicstaticvoidmain(String[]args){ intn=6;//第1個自然數(shù) intm=9;//第2個自然數(shù) intresult=1;//用于保存最大約數(shù) for(inti=1;i<=n;i++){ //如果當(dāng)前數(shù)能被兩個自然數(shù)整除,表明這個數(shù)是約數(shù) if((n%i==0)&&(m%i==0)){ //將這個數(shù)保存下來 result=i; } } //循環(huán)結(jié)束后,result變量中的值就是最大的約數(shù)了 System.out.println("最大的約數(shù)是:"+result); }}解決思路2:從兩個數(shù)字中最小的數(shù)字開始循環(huán),每次減1(最大約數(shù)不可能大于最小的數(shù)字)每次把符合要求(即同時是兩個數(shù)字的約數(shù))的值存儲在一個變量中,那么這個變量最后的值就是最大的約數(shù)第二個思路,循環(huán)的次數(shù)相對較少,效率較高完整代碼示例:publicclassDemo0012{ publicstaticvoidmain(String[]args){ intn=6;//第1個自然數(shù) intm=9;//第2個自然數(shù) //用于保存最大約數(shù),此數(shù)不可能大于兩個自然數(shù)中最小的一個, //所以取出兩個數(shù)中的最小值賦值給此變量 intresult=n>m?m:n; //從大到小進(jìn)行循環(huán) for(inti=result;i>=1;i--){ //如果當(dāng)前數(shù)能被兩個自然數(shù)整除,表明這個數(shù)是約數(shù) if((n%i==0)&&(m%i==0)){ //將這個數(shù)保存下來 result=i; //因為是從大到小找約數(shù),所以找到的第一個就是最大約數(shù)了 //找到后立即退出 break; } } //循環(huán)結(jié)束后,result變量中的值就是最大的約數(shù)了 System.out.println("最大的約數(shù)是:"+result); }}百元買百雞問題:每只母雞3元,每只公雞4元,每只小雞0.5元,如果花100元買100只雞,請問有哪些可能?說明:每種雞的數(shù)量都可以為零思路1:當(dāng)母雞的數(shù)量為0時,公雞的數(shù)量從0~100,當(dāng)公雞的數(shù)量為0時,小雞的數(shù)量也要從0變化到100如此類推,使用三重循環(huán)進(jìn)行嵌套完整代碼示例:publicclassDemo0021{ publicstaticvoidmain(String[]args){ for(inti=0;i<=100;i++){//母雞數(shù)量從0~100進(jìn)行變化 for(intj=0;j<=100;j++){//公雞數(shù)量從0~100進(jìn)行變化 for(intk=0;k<=100;k++){//小雞數(shù)量從0~100進(jìn)行變化 if(i+j+k==100&&i*3+j*4+k*0.5==100){System.out.println("母雞數(shù)量:"+i+"\t公雞數(shù)量:" +j +"\t小雞數(shù)量:"+k); } } } } }}思路2:每只母雞金額3元,100元最多買33只每只公雞金額4元,100元最多買25只按照100元買100只的要求,小雞的數(shù)量是100減去公雞和母雞的數(shù)量這樣就可以簡化代碼:完整代碼示例:publicclassDemo0022{ publicstaticvoidmain(String[]args){ for(inti=0;i<=33;i++){//母雞數(shù)量從0~33進(jìn)行變化 for(intj=0;j<=25;j++){//公雞數(shù)量從0~25進(jìn)行變化 intk=100-i-j;//小雞的數(shù)量是100減去公雞和母雞的數(shù)量 if(i+j+k==100&&i*3+j*4+k*0.5==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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025物資采購合同管理規(guī)定
- 二零二五年度柴油運輸行業(yè)競業(yè)禁止與市場調(diào)研合同3篇
- 2025年度全新競業(yè)協(xié)議失效一個月競業(yè)限制解除申請總結(jié)3篇
- 2025年度農(nóng)業(yè)機械作業(yè)與農(nóng)業(yè)廢棄物資源化利用合作協(xié)議3篇
- 二零二五年度水泥行業(yè)節(jié)能減排合作協(xié)議3篇
- 二零二五年度綠色能源解決方案整體轉(zhuǎn)讓合同版3篇
- 二零二五年度企業(yè)風(fēng)險管理及內(nèi)部控制優(yōu)化合同3篇
- 2025年度教育機構(gòu)教育資源轉(zhuǎn)讓協(xié)議3篇
- 2025年度男女朋友共同購房及按揭還款協(xié)議3篇
- 2025年度建筑廢棄物資源化利用合同書模板3篇
- 《橡皮障的應(yīng)用方法》幻燈片課件
- 錫冶煉工業(yè)副產(chǎn)品利用與價值提升
- 2019教科版《三年級科學(xué)上冊》分組實驗報告單
- 人教版5年級上冊音樂測試(含答案)
- 中國電信-空地一體5G增強低空網(wǎng)絡(luò)白皮書2024
- 八年級上冊道德與法治期末試卷3(開卷)
- 機械工程學(xué)科研究前沿
- 汽車電器DFMEA-空調(diào)冷暖裝置
- DZ/T 0462.3-2023 礦產(chǎn)資源“三率”指標(biāo)要求 第3部分:鐵、錳、鉻、釩、鈦(正式版)
- 河北省滄州市2023-2024學(xué)年高一上學(xué)期期末考試語文試題(含答案解析)
- 2024屆四川省成都市中考數(shù)學(xué)第一輪復(fù)習(xí)之中考考點研究《一次函數(shù)與反比例函數(shù)綜合問題》教學(xué)
評論
0/150
提交評論