版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Java程序設(shè)計(jì)第1章Java語言概述第1章Java語言概述.pptx第2章Java語法基礎(chǔ).pptx第3章程序流程控制.pptx第4章數(shù)組.pptx第5章Java面向?qū)ο缶幊?pptx第6章Java實(shí)用類庫.pptx第7章異常與斷言.pptx第8章Java文件操作.pptx第9章Swing程序設(shè)計(jì).pptx第10章Applet程序設(shè)計(jì).pptx第11章多線程程序設(shè)計(jì).pptx第1章Java語言概述Java語言的發(fā)展和特點(diǎn)01理解JVM、JRE和JDK02Java程序的開發(fā)過程03Java程序的基本結(jié)構(gòu)和規(guī)范04本講提綱專題應(yīng)用:為Java程序輸入數(shù)據(jù)05課程介紹
課程學(xué)時(shí)64學(xué)時(shí)(1-16周),4學(xué)分
其中:理論教學(xué)32,上機(jī)32+課外上機(jī)課程性質(zhì)程序設(shè)計(jì)語言類必修公共基礎(chǔ)課,主要介紹Java語言的基本語法和面向?qū)ο缶幊趟枷牒头椒?。教學(xué)安排共三個(gè)單元(基礎(chǔ)篇、提高篇、進(jìn)階篇),基礎(chǔ)部分需提交相應(yīng)的基礎(chǔ)實(shí)驗(yàn)報(bào)告,最后還有一個(gè)課程綜合設(shè)計(jì)??己朔绞秸n程成績構(gòu)成和比例考勤(10%)+作業(yè)與實(shí)踐(15%)+階段性測試(15%)+綜合設(shè)計(jì)考核(20%)
+期末無紙化考試(40%)說明1、考勤缺課程學(xué)時(shí)1/3以上者,取消考試資格。2、不參加無紙化考試或不提交綜合設(shè)計(jì)者,按缺考處理。時(shí)間-平臺(tái)-教材上課時(shí)間和地點(diǎn):時(shí)間1,地點(diǎn)1上機(jī)時(shí)間和地點(diǎn):時(shí)間2,地點(diǎn)2教學(xué)平臺(tái):
教材:Java程序設(shè)計(jì)(微課版),人民郵電出版社,普運(yùn)偉主編,2019Java程序設(shè)計(jì)習(xí)題與實(shí)踐(微課版),人民郵電出版社,田春瑾主編,2019第1節(jié)初識(shí)Java技術(shù)Java語言的發(fā)展
Java技術(shù)是順應(yīng)時(shí)代發(fā)展的結(jié)果。1990年,Sun公司,JamesGosling(Java之父),Green計(jì)劃1995年5月23日,發(fā)布Java語言和HotJava瀏覽器,1996.1JDK1.02010年,Sun被Oracle收購第1節(jié)初識(shí)Java技術(shù)Java技術(shù)平臺(tái)Java是包括Java語言、Java運(yùn)行環(huán)境、各種API、JavaServerPage、JavaServlet、JavaRMI、JavaBean等眾多技術(shù)于一身的業(yè)界解決問題的平臺(tái)。JavaSE(JavaStandardEdition)
標(biāo)準(zhǔn)版,是Java的基礎(chǔ)和核心,可用于Java應(yīng)用程序,GUI程序、Applet小程序、簡單網(wǎng)絡(luò)應(yīng)用程序、數(shù)據(jù)庫應(yīng)用程序等傳統(tǒng)桌面級(jí)應(yīng)用程序。JavaEE(JavaEnterpriseEdition)
企業(yè)版,構(gòu)建以組件和Web為基礎(chǔ)的企業(yè)級(jí)應(yīng)用解決方案。
JavaME(JavaMicroEdition)
微型版,開發(fā)智能手機(jī)等產(chǎn)品上使用的各類應(yīng)用程序。第1節(jié)初識(shí)Java技術(shù)Java語言的特點(diǎn)
簡單高效
面向?qū)ο?/p>
適于網(wǎng)絡(luò)分布式計(jì)算
良好的跨平臺(tái)特性
豐富、強(qiáng)大的API類庫第2節(jié)理解JVM、JRE和JDKJava程序的運(yùn)行機(jī)制
一次編譯,到處運(yùn)行(WriteOnce,RunAnywhere)源文件(*.java)--->字節(jié)碼文件(*.class)
關(guān)鍵是Java虛擬機(jī)(JVM),負(fù)責(zé)為class文件提供統(tǒng)一的虛擬運(yùn)行平臺(tái),并和底層實(shí)際平臺(tái)進(jìn)行溝通。第2節(jié)理解JVM、JRE和JDKJava程序的運(yùn)行機(jī)制第2節(jié)理解JVM、JRE和JDKJava運(yùn)行環(huán)境JRE是執(zhí)行Java程序所必備的各種要素:JVM是JRE的基礎(chǔ)和核心,API庫是Java程序的重要支持,Deployment技術(shù)方便軟件部署。第2節(jié)理解JVM、JRE和JDKJava開發(fā)環(huán)境JRE:運(yùn)行Java程序的必備環(huán)境,執(zhí)行class文件。JDK:開發(fā)Java程序的必備環(huán)境,編寫和測試Java程序,包括JRE和許多實(shí)用工具。
javac.exe:編譯器
java.exe:解釋器
appletviewer:Applet小程序查看器
javadoc.exe:說明文檔生成工具
jar.exe:打包發(fā)布工具第2節(jié)理解JVM、JRE和JDK1.JVM能執(zhí)行的文件類型為()。Java源文件(*.java)Java字節(jié)碼文件(*.class)可執(zhí)行文件(*.exe)目標(biāo)文件(*.obj)ABCD提交單選題1分第3節(jié)準(zhǔn)備Java開發(fā)環(huán)境JDK的下載、安裝和配置PATH變量:
告訴操作系統(tǒng)默認(rèn)情況下到什么地方去尋找javac.exe和java.exe等工具。
CLASSPATH變量:
告訴Java虛擬機(jī)默認(rèn)情況下到什么地方去尋找class文件。(1)在原PATH變量后添加“;C:\ProgramFiles\Java\jdk1.8.0_181\bin”(2)創(chuàng)建CLASSPATH變量,并設(shè)置值為“CLASSPATH=.;C:\ProgramFiles\Java\jdk1.8.0_181\lib\dt.jar;C:\ProgramFiles\Java\jdk1.8.0_181\lib\tools.jar”,這里的“.”表示當(dāng)前目錄。
詳見上機(jī)實(shí)踐教材第二部分
第3節(jié)準(zhǔn)備Java開發(fā)環(huán)境常見的Java開發(fā)工具UltraEdit
源代碼語法著色,利于熟悉程序結(jié)構(gòu),GUI操作,建議初學(xué)者使用,如學(xué)習(xí)本書1-4章時(shí)
NetBeansIDE
方便的項(xiàng)目管理,語法著色,代碼完成與提示,代碼折疊,代碼錯(cuò)誤提示等,后期使用
EclipseIDE
IBM最先主導(dǎo)的優(yōu)秀開源工具,功能類似NetBeans第4節(jié)編寫第一個(gè)Java程序編輯
打開UltraEdit,輸入程序1-1(不包括行號(hào)),保存源文件為:
HelloJavaDemo.java。
編譯
使用“高級(jí)→編譯Java程序”命令編譯源文件,得到字節(jié)碼文件:HelloJavaDemo.class。相當(dāng)于DOS命令:
javacHelloJavaDemo.java
運(yùn)行
使用“高級(jí)→運(yùn)行Java程序”命令執(zhí)行class文件,得到程序運(yùn)行結(jié)果:Hello,Java!。相當(dāng)于DOS命令:
javaHelloJavaDemo第4節(jié)編寫第一個(gè)Java程序2.若Java程序中定義的public類為HelloWorld,則Java源文件應(yīng)命名為()。helloworld.javaHelloWorld.JavaHelloWorld.java可以任意命名ABCD提交單選題1分第4節(jié)編寫第一個(gè)Java程序程序注釋行,用于對程序或語句的功能進(jìn)行說明。注釋不會(huì)影響程序的執(zhí)行效率,卻有助于提高程序的可閱讀性,建議讀者養(yǎng)成良好的注釋習(xí)慣。關(guān)鍵字public:公有的關(guān)鍵字class:正在定義一個(gè)“類”類名HelloJavaDemo:“類”的名稱,后面的“{”表示類的定義開始Java語言規(guī)定,當(dāng)一個(gè)類被聲明為public類時(shí),則對應(yīng)的文件名必須和該類的名稱一樣main方法是程序執(zhí)行的起點(diǎn),這是其標(biāo)準(zhǔn)寫法,修飾為public,static(靜態(tài)的),void(無返回值),參數(shù)形式為String[]args第4節(jié)編寫第一個(gè)Java程序main方法中的唯一一條語句,調(diào)用System類的out成員的println方法,輸出字符串“Hello,Java!”左花括號(hào)“{”:類定義開始右花括號(hào)“}”:類定義結(jié)束第4節(jié)編寫第一個(gè)Java程序3.下面有關(guān)Java程序的main方法的說法中,正確的是()。main方法是程序運(yùn)行的起點(diǎn),每個(gè)類中都必須包含一個(gè)main方法main方法定義在主類中,任何Java程序有且僅有一個(gè)主類main方法通常用public、static和void進(jìn)行修飾,也可以不用一個(gè)Java程序必須包含一個(gè)main方法ABCD提交單選題1分第5節(jié)Java程序的結(jié)構(gòu)和規(guī)范定義的類名為Rectangle,且修飾為public,故文件名為Rectangle.javaJava的書寫很自由,沒有嚴(yán)格的格式,也沒有“行”的概念
以分號(hào)“;”作為語句結(jié)束標(biāo)志“+”實(shí)現(xiàn)字符串拼接進(jìn)一步認(rèn)識(shí)Java程序【程序1-2】已知長方形的長和寬,編寫程序求該長方形的周長和面積。第5節(jié)Java程序的結(jié)構(gòu)和規(guī)范進(jìn)一步認(rèn)識(shí)Java程序程序1-3:設(shè)計(jì)一個(gè)類Calculator,包含用于計(jì)算3個(gè)實(shí)數(shù)平均值的方法getAverage,并在TestCaculator類中測試該方法。
設(shè)計(jì)了兩個(gè)類,TestCaculator是主類
編譯后生成Calculator和TestCaculator兩個(gè)類文件main方法始終是執(zhí)行起點(diǎn),調(diào)用其他方法:
ave=Calculator.getAverage(a,b,c);
被調(diào)用方法通過return語句返回調(diào)用方法類除了方法外,還可包含屬性(成員變量)第5節(jié)Java程序的結(jié)構(gòu)和規(guī)范4.當(dāng)一個(gè)Java程序中要使用到多個(gè)類時(shí),錯(cuò)誤的做法是()??梢詫⒍鄠€(gè)類放在同一個(gè)文件中,但只能有一個(gè)類定義為public可以將每個(gè)類放在單獨(dú)的文件中,訪問權(quán)限不定可以將多個(gè)類放在同一個(gè)文件中,訪問權(quán)限不定每個(gè)文件中的類個(gè)數(shù)不定,但每個(gè)文件只能有一個(gè)public類ABCD提交單選題1分第5節(jié)Java程序的結(jié)構(gòu)和規(guī)范標(biāo)識(shí)符和關(guān)鍵字Java語言規(guī)定,標(biāo)識(shí)符可由字母、數(shù)字、下劃線(_)和美元符號(hào)($)組成,長度沒有限制,但首字符不能為數(shù)字,且標(biāo)識(shí)符不能為Java語言保留使用的關(guān)鍵字。合法的標(biāo)識(shí)符
username,user_name,a1,b2,$username,_username
不合法的標(biāo)識(shí)符
2sum//以數(shù)字開頭
yourname//含有空格
#yourname//含有非法字符#通常,標(biāo)識(shí)符取為一些有意義的名字
age,address,setAge,setAddress和getAddress
第5節(jié)Java程序的結(jié)構(gòu)和規(guī)范標(biāo)識(shí)符和關(guān)鍵字abstractcontinuefinallyinterfacepublictransientbooleandefaultfloatlongreturntruebreakdofornativeshorttrybytedoubleifnewstaticvoidcaseelseimplementsnullsynchronizedvolatilecatchextendsimportpackagesuperwhilecharfalseinstanceofprivatethisconst*classfinalintprotectedthrowgoto*
關(guān)鍵字是在程序中具有特殊含義和用途的詞匯第5節(jié)Java程序的結(jié)構(gòu)和規(guī)范程序注釋單行注釋
以雙斜線“//”開始,直到本行結(jié)束,例如:
intwidth=5;//定義整型變量width,并為其賦初值為5
多行注釋
以“/*”開始,直到遇到“*/”為止,例如:
/*該程序的功能是求一組數(shù)中的最大值
程序版本:Version1.0
程序編制者:王曉萌*/
文檔注釋
以“/**”開始,直到遇到“*/”為止。例如:
/**
該方法用于求一組數(shù)中的最大值
*/
publicintgetMax(int[]a)
第5節(jié)Java程序的結(jié)構(gòu)和規(guī)范對Java程序的再次說明
Java源文件通常由一個(gè)或多個(gè)類組成,但在一個(gè)文件中最多只能定義一個(gè)public類,相應(yīng)的文件名必須與該public類相同。
每一個(gè)Java類可以包含成員變量(尚未涉及)和成員方法,main方法是Java應(yīng)用程序的執(zhí)行起點(diǎn),也是其執(zhí)行終點(diǎn)。盡管一個(gè)Java源文件可以包含多個(gè)類,但只能有一個(gè)類(主類)中包含main方法。
Java語言嚴(yán)格區(qū)分大小寫。只要大小寫不同,都屬于不同的標(biāo)識(shí)符。Java程序書寫較為自由,每條語句由分號(hào)“;”結(jié)束,每行可以寫一條或多條語句。第5節(jié)Java程序的結(jié)構(gòu)和規(guī)范對Java程序的再次說明
Java的類名一般采用名詞形式,且每個(gè)單詞的首字母習(xí)慣使用大寫,這稱為編程中的“駝峰”風(fēng)格。變量名和方法名最好取一些有意義的名字,盡量做到見文知義,如:name,byPercent,setName,getScore等。
養(yǎng)成良好的注釋習(xí)慣,以幫助理解程序,提高程序的可讀性。
養(yǎng)成良好的代碼縮進(jìn)格式,以增強(qiáng)程序的清晰性。第5節(jié)Java程序的結(jié)構(gòu)和規(guī)范對Java程序的再次說明package包名;
//包語句,只能1條import包名.類名;//導(dǎo)入語句,可以多條class類名1{//類定義,可以多個(gè)
類1的成員變量;//可以多個(gè)
類1的成員方法;//可以多個(gè)}publicclass主類名{//主類定義,只能1個(gè)主類的成員變量;
主類的成員方法;publicstaticvoidmain(String[]args){//main方法定義,只能1個(gè)
方法體;
}}第6節(jié)專題應(yīng)用使用命令行參數(shù)為Java程序輸入數(shù)據(jù)程序1-4:從鍵盤輸入長方形的長和寬,求該長方形的周長和面積。
05 //采用Integer類的parseInt方法將字符串a(chǎn)rgs[0]轉(zhuǎn)換為int型數(shù)據(jù)06 length=Integer.parseInt(args[0]);07 width=Integer.parseInt(args[1]);第6節(jié)專題應(yīng)用使用System.in為Java程序輸入數(shù)據(jù)程序1-5:從鍵盤輸入一個(gè)整數(shù)并計(jì)算它的平方值?!傲鳌钡母拍顁eadline方法封裝類Integer的parseInt方法異常檢查08BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));09
data=Integer.parseInt(br.readLine());第6節(jié)專題應(yīng)用使用Scanner類對象為Java程序輸入數(shù)據(jù)程序1-6:利用Scanner類對象輸入多個(gè)數(shù)據(jù)。java.util包中的Scanner類也可實(shí)現(xiàn)數(shù)據(jù)的輸入。Scanner類采用掃描方式獲取從鍵盤輸入的多種數(shù)據(jù),可以接受字符串、整型、單精度和雙精度等多種類型。使用Scanner類對象輸入數(shù)據(jù)時(shí),可將輸入流對象System.in封裝為Scanner對象,然后調(diào)用讀取相應(yīng)數(shù)據(jù)類型的各種方法。06 Scannerscan=newScanner(is);//封裝成Scanner對象07 System.out.println("請輸入汽車名稱:");08 Stringname=scan.next();//讀取鍵盤輸入的字符串
09 System.out.println("請輸入價(jià)格(萬元):");10 intage=scan.nextInt();//讀取鍵盤輸入的整數(shù)
第6節(jié)專題應(yīng)用5.以下程序的輸出結(jié)果是().
publicclassTest1{publicstaticvoidmain(String[]args){ intresult; result=1+1/2; System.out.println("result="+result); }}result=1result=1.0result=1.5result=2.0ABCD提交單選題1分實(shí)驗(yàn)與作業(yè)上機(jī)實(shí)驗(yàn)
完成實(shí)驗(yàn)1的內(nèi)容
課后作業(yè)
完成習(xí)題與實(shí)踐教材中第1章中的全部習(xí)題
感謝您的關(guān)注ThankYouforYourAttentionJava程序設(shè)計(jì)第2章Java語法基礎(chǔ)第2章Java語法基礎(chǔ)基本數(shù)據(jù)類型0102本講提綱04變量與常量03基本數(shù)據(jù)類型變量的賦值0404表達(dá)式與運(yùn)算符0405擴(kuò)展表達(dá)式和類型轉(zhuǎn)換06專題應(yīng)用:數(shù)據(jù)的隨機(jī)產(chǎn)生與高效計(jì)算第1節(jié)基本數(shù)據(jù)類型
程序設(shè)計(jì)語言使用變量來保存數(shù)據(jù),每一個(gè)變量都屬于一種數(shù)據(jù)類型。Java提供了整數(shù)型、浮點(diǎn)型、邏輯型和字符型等基本數(shù)據(jù)類型,如圖2-1所示?;緮?shù)據(jù)類型的特點(diǎn)列于表2-1。①程序中的數(shù)據(jù)可分為常量和變量,無論常量還是變量,都有數(shù)據(jù)類型之分。②數(shù)據(jù)類型決定了數(shù)據(jù)的取值范圍和數(shù)據(jù)可執(zhí)行的操作。③Java采用固定長度的基本數(shù)據(jù)類型,其長度與機(jī)器平臺(tái)無關(guān)。第1節(jié)基本數(shù)據(jù)類型在下列Java的基本數(shù)據(jù)類型中,所占字節(jié)數(shù)最少的是________。charbooleanshortfloatABCD提交單選題
第2節(jié)變量與常量
程序中的數(shù)據(jù)可分為常量和變量兩種,程序運(yùn)行過程中值可以改變的量,稱為變量。變量實(shí)質(zhì)就是一塊取了名字的、用來存儲(chǔ)Java數(shù)據(jù)的內(nèi)存區(qū)域。Java是一種“強(qiáng)”類型語言,即任何數(shù)據(jù)類型的變量都必須先聲明并且賦值后才能使用。變量聲明變量的一般形式為:<類型名><變量列表>;<類型名>必須是有效的數(shù)據(jù)類型,如int、float等,也可以是后面介紹的引用類型。第2節(jié)變量與常量變量的命名必須符合Java標(biāo)識(shí)符的命名規(guī)則,且不能使用Java關(guān)鍵字。 inti,number; floatmax,min,sum; doubleheight_value,total_weight,count; charch1;<變量列表>可以由一個(gè)或多個(gè)用逗號(hào)分隔的變量名構(gòu)成,即在一條語句中可以聲明一個(gè)或多個(gè)同種類型的變量。例如:
變量第2節(jié)變量與常量(1)聲明變量的同時(shí)進(jìn)行賦值,即初始化變量,例如: intnumber1=34,number2=-98;
//聲明變量,并直接賦初值(2)聲明變量后通過賦值語句賦值,例如: intnumb1,numb2,numb3,numb4,numb5; charch1; numb1=2;
numb2=numb3=numb4=numb5=5;
//為整型變量連續(xù)賦值 ch1=’a’;
//為字符型變量賦值
聲明變量后,還需賦值后才能使用,可通過賦值運(yùn)算符“=”來實(shí)現(xiàn)。變量若定義有變量floatf1,f2=8.0F,則下列說法正確的是________。變量f1,f2均被初始化為8.0變量f1沒有被初始化,f2被初始化為8.0變量f1,f2均未被初始化變量f2沒有被初始化,f1被初始化為8.0ABCD提交單選題第2節(jié)變量與常量
存儲(chǔ)器的存取特點(diǎn)是:取之不盡、一存即變。也就是說,變量中的值可以反復(fù)讀取,其值也不會(huì)改變。而把一個(gè)新值賦給變量后,變量中原來的值就被新值所替代。例如下面的程序片斷:inta,b; a=8;b=9; a=b+1;
//a的值變?yōu)?0,b的值保持不變,仍為9a=b;
//a的值變?yōu)?變量第2節(jié)變量與常量常量
常量是在程序運(yùn)行期間值不能被修改的量。常量分為普通常量(即常數(shù),如用于為變量賦值的數(shù))和標(biāo)識(shí)符常量。用標(biāo)識(shí)符代表的常量實(shí)質(zhì)上是“常值變量”,使用前需要先定義。定義標(biāo)識(shí)符常量和變量的方式是一致的,但必須使用關(guān)鍵字final進(jìn)行修飾,且定義時(shí)一般需要為其賦值。為了和變量區(qū)分,標(biāo)識(shí)符常量名常采用大寫字母,以示區(qū)別。
整型變量有byte、short、int和long共四種類型,其默認(rèn)類型為整型(int)。因此,1、-9999、123456789都是int型的常量。
注意,賦值時(shí)必須確保所賦的值必須在相應(yīng)類型變量的取值范圍內(nèi),否則會(huì)造成損失。第3節(jié)基本數(shù)據(jù)類型變量的賦值【程序2-2】整型變量賦值錯(cuò)誤范例。整型變量的賦值
整型變量可以賦值為以下形式的整型常量:十進(jìn)制、八進(jìn)制、十六進(jìn)制,還可以將一個(gè)字符常量賦值給整型變量,例如:intnum=’A’;//num值為65,65為字符‘A’的Unicode碼值04 bytenum1=130;05 shortnum2=32780;06 Intnum1=130;07 longnum3=31474836470;在以下整型常量的表示方法中,不正確的是________。600900x006060LABCD提交單選題第3節(jié)基本數(shù)據(jù)類型變量的賦值浮點(diǎn)型變量的賦值
浮點(diǎn)型變量有兩種類型,即float和double。浮點(diǎn)型常量默認(rèn)類型是雙精度浮點(diǎn)型,因此,1.0、1/2.0和345.678都是double類型的常量。1.十進(jìn)制數(shù)
由數(shù)字和小數(shù)點(diǎn)組成,如0.123、1.23、123.0F等。如果采用分?jǐn)?shù)賦值,分子和分母至少有一項(xiàng)是帶小數(shù)點(diǎn)的數(shù)值,如1.0/2、1/2.0、1.0f/2等。例如:
doubleb=1.0/2; //雙精度變量b賦值為0.5 floata=1/2.0F; //單精度變量a賦值為0.5第3節(jié)基本數(shù)據(jù)類型變量的賦值2.科學(xué)計(jì)數(shù)法
在Java中,用十進(jìn)制小數(shù)后跟E或e,之后再跟10的冪來表示,這種形式就是科學(xué)計(jì)數(shù)法。例如:
doubled=0.7E-3; //雙精度變量d賦值為0.7E-3,即7×10-4
其中,e或E之前必須有數(shù)字,且e或E后面的指數(shù)必須為正整數(shù)或負(fù)整數(shù),不能為小數(shù),如果是正整數(shù),“+”號(hào)可省略。浮點(diǎn)型變量的賦值下列哪個(gè)賦值語句是不正確的________。floatf=11.1;doubled=5.3E12;floatd=3.14f; doublef=11.1E10f;ABCD提交單選題第3節(jié)基本數(shù)據(jù)類型變量的賦值字符型變量的賦值
字符的普通常量是用單引號(hào)括起來的一個(gè)字符,如'P'、'&'、'g'、'5'等均為字符常量,且一個(gè)字符型變量只能接受一個(gè)字符。單引號(hào)只定界作用,并不代表字符。
在Java語言中,字符數(shù)據(jù)的內(nèi)部表示采用16位的Unicode編碼,而不是8位的ASCII碼。Unicode(統(tǒng)一碼、萬國碼、單一碼)是一種在計(jì)算機(jī)上普遍使用的字符編碼。部分字符的Unicode編碼值見表2-2。
計(jì)算機(jī)在處理字符類型時(shí),是把這些字符當(dāng)成不同的整數(shù)來看待。字符類型在一定范圍內(nèi)可以當(dāng)作整數(shù)類型來處理。第3節(jié)基本數(shù)據(jù)類型變量的賦值1.普通字符
能用鍵盤輸入的字符均可以賦值給字符型變量,可以是普通字符常量,也可以是它的Unicode編碼值。由于數(shù)字字符、字母是按順序存放在Unicode碼表中的,因此字符的Unicode碼值可以像整數(shù)一樣在程序中參與運(yùn)算,例如: charch1='a';
//字符變量ch1賦值為普通字符'a'
charch2=65;
//字符變量ch2賦值為65,即'A’
int
x=ch1-32;
//ch1-32即97-32,即字符'A'的Unicode十進(jìn)制編碼值字符型變量的賦值第3節(jié)基本數(shù)據(jù)類型變量的賦值2.轉(zhuǎn)義字符
無法用鍵盤輸入的字符可以采用‘\u’方式或用轉(zhuǎn)義字符進(jìn)行賦值。Java中的常用轉(zhuǎn)義字符見表2-3。字符型變量的賦值第3節(jié)基本數(shù)據(jù)類型變量的賦值
利用轉(zhuǎn)義字符賦值的方法是以單引號(hào)包圍表2-3中所列的轉(zhuǎn)義字符。例如: charch1=‘\”’;//字符型變量ch1的值是一個(gè)雙引號(hào) charch2='\101';
//八進(jìn)制101即65,變量ch2值是字符'A' charch3='\u006D';
//Unicode碼值006D對應(yīng)的字符為'm',變量ch3值是字符'm'【程序2-3】利用轉(zhuǎn)義字符,輸出一個(gè)4行的由”*”組成的等腰三角形。字符型變量的賦值04System.out.print("*\n***\n*****\n*******");第3節(jié)基本數(shù)據(jù)類型變量的賦值字符串變量的賦值
在Java語言中,字符串常量是用雙引號(hào)括起來的一串字符,如“Thisisastring”。實(shí)際上,Java語言將字符串常量作為String類的一個(gè)對象來處理,而不是一個(gè)普通數(shù)據(jù)。
為了編程的方便,Java允許將String類型的常量像本章介紹的八種基本數(shù)據(jù)類型一樣賦值給String類型的變量。例如: Stringstr="Hello,";//定義引用變量str為String類型,且賦初值為"Hello,"str=str+"Guys!";//引用變量str的值為"Hello,Guys!"第3節(jié)基本數(shù)據(jù)類型變量的賦值布爾型變量的賦值
布爾型變量只有兩個(gè)值true(真)和false(假),且它們不對應(yīng)于任何整數(shù)值。布爾型變量的賦值如下: booleanb=true;或booleanb=false;
注意:Java中的布爾值和數(shù)字之間不能來回轉(zhuǎn)換,即false和true不對應(yīng)于任何0或非0的整數(shù)值。第3節(jié)基本數(shù)據(jù)類型變量的賦值基本數(shù)據(jù)類型變量的默認(rèn)值Java是一種強(qiáng)類型的語言,如果聲明局部變量后,不進(jìn)行賦值,編譯器將提示錯(cuò)誤,例如:
實(shí)際上,Java語言不會(huì)對方法內(nèi)部定義的局部變量提供默認(rèn)的初始值,因此局部變量必須賦值后才能使用;但Java會(huì)為對象的成員變量提供默認(rèn)的初始值,以保證沒有初值的對象存在,具體詳見第5章。longl=0xfffL; //長整型變量用十六進(jìn)制賦值charc;
//聲明字符型變量,但沒有賦值floatf=0.23F; //單精度變量賦值System.out.println("l="+l+"\tc="+c+"\tf="+f);下面正確的表達(dá)式是________。byte=128;longi=xfffL;chara=’\u0061’;double=0.9239d;ABCD提交單選題第4節(jié)表達(dá)式與運(yùn)算符表達(dá)式doubled2;
//聲明變量d2intd1=14,a,b,c=1; //聲明變量d1,a,b和c,同時(shí)初始化d1和cd1=d1+3; //將d1+3的結(jié)果17重新存回變量d1中d2=(a+b)*c-(b-a)+(b%c)*a;//由于a和b沒有值,將導(dǎo)致編譯錯(cuò)誤錯(cuò)誤
程序由一序列語句組成,語句的基本單位是表達(dá)式,而表達(dá)式由運(yùn)算符和操作數(shù)組成。操作數(shù)既可以用變量表示,也可以用常量表示;表達(dá)式根據(jù)運(yùn)算符規(guī)定的操作順序進(jìn)行計(jì)算,并得到相應(yīng)的結(jié)果。例如:
在程序設(shè)計(jì)中,對各種類型的數(shù)據(jù)進(jìn)行加工的過程稱為運(yùn)算,表示各種不同運(yùn)算的符號(hào)稱為運(yùn)算符。按功能劃分,運(yùn)算符可分為:算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符、賦值運(yùn)算符、條件運(yùn)算符等。第4節(jié)表達(dá)式與運(yùn)算符運(yùn)算符
算術(shù)運(yùn)算符主要用于完成變量(或常量)的算術(shù)運(yùn)算,常用的算術(shù)運(yùn)算符如表2-4所示。
如果參與除法運(yùn)算的兩個(gè)數(shù)據(jù)均為整型,則結(jié)果為整數(shù)(不進(jìn)行四舍五入),否則結(jié)果為浮點(diǎn)型。第4節(jié)表達(dá)式與運(yùn)算符例如:
1/2//結(jié)果為0 1.0/2//結(jié)果為0.5 16%3//結(jié)果是1 15.7%3 //結(jié)果是0.7 3%16//結(jié)果是3運(yùn)算符第4節(jié)表達(dá)式與運(yùn)算符x/10%10:即2865%10,得到十位數(shù)字5 【程序2-4】聲明一個(gè)整型變量x,并任意賦一個(gè)5位數(shù)的值,編程逆序輸出這個(gè)5位數(shù)的值。x%10:即28654%10,得到個(gè)位數(shù)字4x/100%10:即286%10,得到百位數(shù)字6 第11行“=”
號(hào)右側(cè)表達(dá)式即(((4*10+5)*10+6)*10+8)*10+2,得到逆序數(shù)45682第4節(jié)表達(dá)式與運(yùn)算符
自增(++)和自減(--)只對整型變量和浮點(diǎn)型變量有效,其作用是將變量加1或減1;都有前置和后置兩種形式:++a和a++、--b和b--,兩種形式將對表達(dá)式和變量將產(chǎn)生不同的影響。例如,若有語句intk,a=5;則:前置:k=++a;表示a變量先自加1后,再把整個(gè)表達(dá)式的值賦值給k,結(jié)果是:a=6,k=6。后置:k=a++;表示先使用a變量的值后,a再自加1,結(jié)果是:k=5,a=6。運(yùn)算符下面程序的運(yùn)行結(jié)果是________。publicclassEx50{publicstaticvoidmian(Stringargs[]){floatf=12.0f;inti=3;System.out.println((f--)/(++i));}}33.044.0ABCD提交單選題第4節(jié)表達(dá)式與運(yùn)算符
關(guān)系運(yùn)算符用來判斷一個(gè)表達(dá)式成立與否或用于比較多個(gè)表達(dá)式的值,常用于if條件語句的條件表達(dá)式中。含有關(guān)系運(yùn)算符的表達(dá)式稱為關(guān)系表達(dá)式。關(guān)系表達(dá)式的運(yùn)算結(jié)果是一個(gè)邏輯值,即true(真)或false(假)。關(guān)系運(yùn)算符的優(yōu)先級(jí)和含義如表2-5所示。運(yùn)算符第4節(jié)表達(dá)式與運(yùn)算符關(guān)系運(yùn)算符的使用,有如下的程序片斷:inta=3,b=2,c=1;booleand,f;d=a>b; //d值為truef=(a>b)==c; //類型boolean和int不能作比較d=b+c<a; //d值為falsef=a<c;
//f值為falsed=a>b>c; //a>b值為true,再和c比較時(shí)因類型不同不能比較運(yùn)算符下面程序段的輸出結(jié)果為__________。publicclassEx43{publicstaticvoidmain(Stringargs[]){booleana,b,c;a=(3<5);b=(a==true);System.out.println(“a=”+a+”b=”+b);c=(b==false);System.out.println(“b=”+b+”c=”+c);}}a=trueb=falseb=truec=truea=trueb=trueb=truec=falsea=trueb=falseb=truec=falsea=falseb=falseb=truec=falseABCD提交單選題第4節(jié)表達(dá)式與運(yùn)算符關(guān)系運(yùn)算符可以進(jìn)行簡單的關(guān)系比較,但若要構(gòu)建復(fù)雜的判斷條件,就需要“與”和“或”等運(yùn)算符將幾個(gè)關(guān)系表達(dá)式連接起來,這樣的運(yùn)算符稱為邏輯運(yùn)算符。邏輯運(yùn)算符的含義和優(yōu)先級(jí)如表2-6所示。運(yùn)算符
邏輯表達(dá)式的結(jié)果與關(guān)系表達(dá)式相同,要么為true,要么為false。邏輯運(yùn)算的基本運(yùn)算規(guī)則如表2-7所示。第4節(jié)表達(dá)式與運(yùn)算符
在復(fù)雜的邏輯表達(dá)式中,要特別注意“邏輯短路”的問題。例如:
inta=6,b=8,c=3;booleanf1,f2;f1=(a>b)&&(b>++c);
//a>b值為false,無需再判斷b>++a,但系統(tǒng)會(huì)檢查其語法錯(cuò)誤
System.out.println("f1="+f1+”,c=”+c);
//輸出:f1=false,c=3
f2=(a<b)||(--b>c);
//a<b值為true,無需再判斷--b>c,但系統(tǒng)會(huì)檢查其語法錯(cuò)誤
System.out.println("f2="+f2+”,b=”+b);
//輸出:f2=true,b=8運(yùn)算符(year%400==0)(year%100!=0)(year%4==0)第4節(jié)表達(dá)式與運(yùn)算符【程序2-6】給定一個(gè)年份,判斷其是否為閏年。運(yùn)算符分析:判斷閏年的條件為“若年份能被400整除,或能被4整除但不能被100整除,該年份為閏年”。如果兩個(gè)整數(shù)進(jìn)行模運(yùn)算(%),余數(shù)為零,那么前者能被后者整除。||&&該條件中的“但”即“并且”,可用邏輯與“&&”描述,“或”用邏輯或“||”描述。下列程序的運(yùn)行結(jié)果是________。publicclassEx28{ publicstaticvoidmain(Stringargs[]){ inta=5,b=1; booleanc=(a<10)||(++b>=2); System.out.println("b="+b+”,c=”+c); }
}b=1,c=trueb=2,c=trueb=1,c=falseb=2,c=falseABCD提交單選題第4節(jié)表達(dá)式與運(yùn)算符
條件運(yùn)算符又稱三目運(yùn)算符,由“?”和“:”組成?!叭俊敝傅氖遣僮鲾?shù)的個(gè)數(shù)有三個(gè)。由三目運(yùn)算符可以構(gòu)成條件表達(dá)式,格式為:
表達(dá)式1?表達(dá)式2:表達(dá)式3
表達(dá)式1通常是關(guān)系表達(dá)式或邏輯表達(dá)式。條件表達(dá)式的運(yùn)算規(guī)則為:若表達(dá)式1的值為true,則整個(gè)條件表達(dá)式的結(jié)果取表達(dá)式2的值;若表達(dá)式1為false,整個(gè)條件表達(dá)式的結(jié)果取表達(dá)式3的值。另外,條件表達(dá)式可以嵌套使用,例如:運(yùn)算符
inty,x=-1; y=(x>0)?5:(x<0)?-8:0;第4節(jié)表達(dá)式與運(yùn)算符
在對一個(gè)表達(dá)式進(jìn)行計(jì)算時(shí),如果表達(dá)式中含有多種運(yùn)算符,則要按運(yùn)算符的優(yōu)先順序依次從高到低進(jìn)行計(jì)算,同級(jí)運(yùn)算符則根據(jù)運(yùn)算符的結(jié)合性進(jìn)行計(jì)算。Java語言的運(yùn)算符優(yōu)先級(jí)和結(jié)合性如表2-8所示。運(yùn)算符的優(yōu)先級(jí)Java語言將運(yùn)算符和賦值運(yùn)算符組合,組成新的運(yùn)算符,稱為擴(kuò)展運(yùn)算符或自反賦值運(yùn)算符。用這些運(yùn)算符可以構(gòu)建更為簡潔的表達(dá)式,即擴(kuò)展表達(dá)式,表2-9列出了這些運(yùn)算符及其含義。第5節(jié)擴(kuò)展表達(dá)式和類型轉(zhuǎn)換程序中的表達(dá)式:y*=x+2;編譯后為y=y*x+2還是
y=y*(x+2)?擴(kuò)展表達(dá)式下面程序的運(yùn)行結(jié)果是________。publicclassEx49{ publicstaticvoidmain(Stringargs[]){ floata=20.28f,b=5.0F; a%=b; b*=b+2; System.out.println("a="+a+",b="+b);
}
}
a=0,b=27a=0,b=27.00a=0.28,b=35a=0.28,b=35.00ABCD提交單選題
在Java語言中,允許同一個(gè)表達(dá)式中含有不同數(shù)據(jù)類型的常量和變量,但是表達(dá)式的結(jié)果只能是某一種數(shù)據(jù)類型。因此,就必須進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換。第5節(jié)擴(kuò)展表達(dá)式和類型轉(zhuǎn)換(1)賦值時(shí)
Java語言規(guī)定,賦值時(shí)可以將位數(shù)少的類型賦值給位數(shù)多的類型,從而構(gòu)成賦值時(shí)的自動(dòng)類型轉(zhuǎn)換。例如:
intx=’d’;
//char常量賦值給int變量,x值為100 longy=100;
//int常量賦值給long變量,y值為100L doublez=2;
//int常量賦值給double變量,z值為2.0自動(dòng)轉(zhuǎn)換數(shù)據(jù)類型第5節(jié)擴(kuò)展表達(dá)式和類型轉(zhuǎn)換(2)
混合型表達(dá)式
整型、實(shí)型和字符型數(shù)據(jù)可以組成混合型表達(dá)式進(jìn)行運(yùn)算。運(yùn)算時(shí),不同類型的數(shù)據(jù)需先轉(zhuǎn)化為同一類型,然后才進(jìn)行運(yùn)算。
轉(zhuǎn)換的基本原則是:以不丟失數(shù)據(jù)精度為前提,從占用字節(jié)少的類型轉(zhuǎn)換到占用字節(jié)多的數(shù)據(jù)類型,按以下順序進(jìn)行自動(dòng)類型轉(zhuǎn)換:
(char,byte,short)→int→long→float→double自動(dòng)轉(zhuǎn)換數(shù)據(jù)類型第5節(jié)擴(kuò)展表達(dá)式和類型轉(zhuǎn)換(2)
混合型表達(dá)式
對于占用字節(jié)少的char、byte和short,計(jì)算時(shí)總是被轉(zhuǎn)換為int類型,即Java混合表達(dá)式計(jì)算結(jié)果的最低類型為int。例如:bytea=2,b=3;intx=a+b;//賦值號(hào)右邊的變量a和b先轉(zhuǎn)換為int型后再相加doubley=x+2.5;//x被轉(zhuǎn)換為double型后再參與計(jì)算floatz=1.0F/100;//100被轉(zhuǎn)換為float型后再參與計(jì)算自動(dòng)轉(zhuǎn)換數(shù)據(jù)類型若定義有shorts;byteb;charc;則表達(dá)式s*b+c的類型為________。charbyteintshortABCD提交單選題程序代碼: intr1=3,r2=2; doubleresult=1.5+r1/r2;
//r1/r2的結(jié)果為1,result為2.5第5節(jié)擴(kuò)展表達(dá)式和類型轉(zhuǎn)換
若想讓r1/r2為1.5,result的值為3.0,就需要強(qiáng)制轉(zhuǎn)換數(shù)據(jù)的類型,強(qiáng)制轉(zhuǎn)換類型的一般形式為:(數(shù)據(jù)類型名)變量或表達(dá)式強(qiáng)制轉(zhuǎn)換數(shù)據(jù)類型下面哪行代碼,result的值為3.0?01 result=1.5+(double)r1/r2;02 result=1.5+(double)(r1/r2);第5節(jié)擴(kuò)展表達(dá)式和類型轉(zhuǎn)換
一般來說,從占用字節(jié)多的類型轉(zhuǎn)換為占用字節(jié)少的類型,就必須使用強(qiáng)制轉(zhuǎn)換數(shù)據(jù)類型。例如: inti; floatx=3.6f; byteb=(byte)i;
//把int型變量i的值強(qiáng)制轉(zhuǎn)換為byte型 i=(int)x;
//把x的值強(qiáng)制轉(zhuǎn)換為int型,變量i的值為3,變量x仍為float型強(qiáng)制轉(zhuǎn)換數(shù)據(jù)類型把數(shù)值范圍較大的類型轉(zhuǎn)換成數(shù)值范圍較小的類型就很有可能丟失數(shù)據(jù)信息。
隨機(jī)數(shù)是由隨機(jī)數(shù)種子根據(jù)一定的計(jì)算方法計(jì)算出來的數(shù)值,只要具有確定的計(jì)算方法和隨機(jī)數(shù)種子,便可產(chǎn)生隨機(jī)數(shù)。第6節(jié)專題應(yīng)用
Java語言提供了兩種生成隨機(jī)數(shù)的方法:一是使用Random類,二是使用Math類的random方法。Random類是java.util包中的類,需要用import語句來導(dǎo)入,使用時(shí)要先調(diào)用構(gòu)造方法構(gòu)造對象,然后通過對象才能使用該類提供的方法。數(shù)據(jù)的隨機(jī)產(chǎn)生Random類的構(gòu)造方法主要有如下兩種形式:(1)publicRandom()
該方法創(chuàng)建一個(gè)隨機(jī)數(shù)生成器,并以系統(tǒng)當(dāng)前時(shí)間作為隨機(jī)數(shù)種子。因?yàn)槊繒r(shí)每刻的時(shí)間都不盡相同,因此產(chǎn)生的隨機(jī)數(shù)也不同,例如:Randomrnd=newRandom();//構(gòu)造對象,創(chuàng)建隨機(jī)數(shù)生成器rnd(2)publicRandom(longseed)
該方法使用一個(gè)long類型的種子seed創(chuàng)建一個(gè)新的隨機(jī)數(shù)生成器。該種子是偽隨機(jī)數(shù)生成器的內(nèi)部狀態(tài)的初始值。第6節(jié)專題應(yīng)用數(shù)據(jù)的隨機(jī)產(chǎn)生第6節(jié)專題應(yīng)用
調(diào)用Random類的構(gòu)造方法創(chuàng)建對象后,再通過對象調(diào)用表2-10中的各種方法便可以隨機(jī)生成一個(gè)任意范圍內(nèi)的數(shù)據(jù),例如:【程序2-7】隨機(jī)出幾道小學(xué)生四則運(yùn)算題,要求加、減、乘、除法和參與運(yùn)算的兩個(gè)整數(shù)(0~100之間)均隨機(jī)產(chǎn)生,顯示題目,等待作答并判斷答題是否正確。 Randomrnd=newRandom();//創(chuàng)建隨機(jī)數(shù)生成器對象rnd inta=rnd.nextInt(10); //隨機(jī)產(chǎn)生一個(gè)[0,10)之內(nèi)的數(shù) intb=rnd.nextInt(900)+100;//隨機(jī)產(chǎn)生一個(gè)三位數(shù) doublec=rnd.nextDouble()*10//隨機(jī)產(chǎn)生一個(gè)0.0~10.0之間的浮點(diǎn)數(shù)數(shù)據(jù)的隨機(jī)產(chǎn)生有下列語句序列,num的取值范圍將是
。
Randomrd=newRandom(); intnum=rd.nextInt(50)+100;50≤x<100100≤x<150100≤x≤15050≤x≤100ABCD提交單選題第6節(jié)專題應(yīng)用
程序中的基本數(shù)學(xué)運(yùn)算,如圓周率π、初等指數(shù)、對數(shù)、平方根和三角函數(shù)等復(fù)雜的運(yùn)算采用Java提供的Math類,可達(dá)到事半功倍的效果。
Math類是java.lang包中的類,所提供的成員變量為類變量(靜態(tài)變量),提供的方法為類方法(靜態(tài)方法),即使用Math類的成員時(shí),不需要構(gòu)造對象,便可通過類名進(jìn)行調(diào)用,有關(guān)靜態(tài)成員的相關(guān)知識(shí)詳見第5章。
Math類提供了如下的成員變量和成員方法。高效計(jì)算
第6節(jié)專題應(yīng)用(1)Math的類變量Math類提供了兩個(gè)類變量,這兩個(gè)變量可以直接使用。Math.E:自然對數(shù),數(shù)據(jù)類型為double。Math.PI:圓周率π,數(shù)據(jù)類型為double。(2)Math的類方法
Math類提供了幾十種類方法,常見的如表2-11所示,其余方法可參考JavaSEAPI文檔。高效計(jì)算
第6節(jié)專題應(yīng)用
使用上述Math類的成員變量和成員方法時(shí),無需構(gòu)造對象,可通過類名直接進(jìn)行調(diào)用,例如:
Math.sin(Math.PI/2)
//計(jì)算sin(π/2)
Math.pow(Math.E,2)
//計(jì)算e的2次冪
Math.exp(2)
//計(jì)算e的2次冪
(int)(100*Math.random()+0.5)
//隨機(jī)產(chǎn)生一個(gè)0~100之間的整數(shù)
(char)('a'+Math.random()*('z'-'a'+1))
//隨機(jī)生成'a'~'z'之間的一個(gè)字母
Math.rint(9.99)
//取整,結(jié)果為10.0高效計(jì)算
第6節(jié)專題應(yīng)用【程序2-8】求一元二次方程ax2+bx+c=0的根(a≠0),設(shè)b2-4ac>=0。高效計(jì)算系數(shù)a,b,c是隨機(jī)生成的,生成隨機(jī)數(shù)可以使用Random類,也可以使用Math類的random方法。下列表達(dá)式中,x的取值范圍為0≤x≤100的表達(dá)式是________。x=(int)(Math.random()*100)x=(int)(Math.random()*100)+1x=(int)(Math.random()*100+1)x=(int)(Math.random()*100+0.5)ABCD提交單選題實(shí)驗(yàn)與作業(yè)上機(jī)實(shí)驗(yàn)
完成實(shí)驗(yàn)2和實(shí)驗(yàn)3的內(nèi)容
課后作業(yè)
完成習(xí)題與實(shí)踐教材中第2章中的全部習(xí)題
感謝您的關(guān)注ThankYouforYourAttentionJava程序設(shè)計(jì)第3章程序流程控制程序流程控制典型程序結(jié)構(gòu)01選擇結(jié)構(gòu)02循環(huán)結(jié)構(gòu)03控制跳轉(zhuǎn)語句04本章內(nèi)容專題應(yīng)用:典型流程控制算法05第1節(jié)典型程序大家所見到的程序都是按照語句編寫的先后順序逐條地執(zhí)行。例如:聲明變量,給變量賦值,最后輸出變量的值。然而,在日常生活中往往會(huì)遇到很多更復(fù)雜的情況。比如:要把某個(gè)數(shù)字顯示100次?遇到一首你想反復(fù)聽的曲子?走到丁字路口前,你該選擇哪個(gè)方向?采用不同流程控制語句解決這些問題任何算法功能都可以通過程序模塊的三種基本流程結(jié)構(gòu)組成:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。第1節(jié)典型程序第2節(jié)選擇結(jié)構(gòu)相信大家都對各種手機(jī)套餐資費(fèi)有所了解,現(xiàn)在假設(shè)有一種資費(fèi)情況為:每月基本套餐使用費(fèi)20元,其中包括主叫100分鐘通話時(shí)間,超過100分鐘后,主叫每分鐘0.15元。給定一個(gè)主叫通話時(shí)間,試計(jì)算出所需要的電話費(fèi)用?選擇結(jié)構(gòu)是指程序通過判斷給定條件的結(jié)果來選擇執(zhí)行哪個(gè)流程分支。Java提供的兩種選擇語句:if語句和switch語句。第2節(jié)選擇結(jié)構(gòu)if語句if-else語句的基本形式:if(條件表達(dá)式)
語句塊1;[else
語句塊2;]語句的執(zhí)行過程第2節(jié)選擇結(jié)構(gòu)說明:1.if語句中條件表達(dá)式的結(jié)果必須為邏輯型intx=0;if(x){…}2.語句塊既可以是一條語句也可以是多條語句intx=5;if(x<=0)x=-x;System.out.println("x="+x);}結(jié)果有何變化?{第2節(jié)選擇結(jié)構(gòu)說明:3.嵌套的if語句intx=-5;if(x<=0)if(x==0)System.out.println("x是零");elseSystem.out.println("x為負(fù)數(shù)");在嵌套的if語句中,Java編譯器總是將else與最近的還沒有配對的if相配對,除非用花括號(hào)指定不同的匹配方式。}{程序3-1第2節(jié)選擇結(jié)構(gòu)如果程序3-1需要作進(jìn)一步修改:通話時(shí)間超過500分鐘后,主叫每分鐘0.1元,超過1000分鐘,主叫每分鐘0.05元。多選擇的if-else語句if(條件表達(dá)式1)
語句塊1;elseif(條件表達(dá)式2)
語句塊2;……[else
語句塊n+1;]語句執(zhí)行過程第2節(jié)選擇結(jié)構(gòu)intscore=80;chargrade='D';if(score>=90)grade='A';elseif(score>=80)grade=’B’;elsegrade='C';System.out.println("成績等級(jí)為:"+grade);elseif(score>=80)grade='B';System.out.println("成績等級(jí)為:"+grade);程序3-2{}例:給定一個(gè)成績,輸出對應(yīng)的等級(jí)。(A、B、C)
關(guān)于選擇結(jié)構(gòu)下列說法正確的是()if語句和?else語句必須成對出現(xiàn)。if語句可以沒有else語句對應(yīng)。一個(gè)if語句只能有一個(gè)else?if語句與之對應(yīng)。else?if結(jié)構(gòu)中必須有default語句。ABCD提交單選題第2節(jié)選擇結(jié)構(gòu)語句的基本形式switch(表達(dá)式){case值1:語句塊1;break;case值2:語句塊2;break;…case值n:語句塊n;break;[default:語句塊n+1;]}Switch執(zhí)行過程語句塊n如果是多條順序執(zhí)行的語句可以不用大括號(hào)語句執(zhí)行過程switch語句第2節(jié)選擇結(jié)構(gòu)說明1.switch語句的每個(gè)case不負(fù)責(zé)指明流程的出口,一旦遇到相等的值,執(zhí)行完相應(yīng)的語句塊后,不再判斷后面的case值,結(jié)構(gòu)中通過break語句將流程轉(zhuǎn)到程序的出口。chargrade='A';switch(grade){case'A':System.out.println("優(yōu)秀");case'B':System.out.println("良好");case'C':System.out.println("中等");default:System.out.println("不及格");}優(yōu)秀良好中等不及格第2節(jié)選擇結(jié)構(gòu)2.并非所有的case后面都必須有break語句。比如多個(gè)值有一個(gè)相同的結(jié)果時(shí),只需要在最后一個(gè)case值后面填寫相應(yīng)的語句塊。chargrade='B';switch(grade){case'A':case'B':case'C':System.out.println("及格");break;default:System.out.println("不及格");}第2節(jié)選擇結(jié)構(gòu)3.switch后的表達(dá)式可以是單個(gè)變量,也可以是帶有各種操作符的表達(dá)式。但是,表達(dá)式的值必須是byte、short、int、char或String類型。
floatx=2.0;switch(x){case2.0:…}
inty=1;switch(y*5){…}
intx=3,y=1;switch(x){casey+2:…}x不能是浮點(diǎn)型數(shù)據(jù)
正確
case后面不能為帶有變量的表達(dá)式
程序3-3下面程序段,當(dāng)x=2時(shí),運(yùn)行結(jié)果是()switch(x){case1:System.out.println(1);case2:case3:System.out.println(3);case4:System.out.println(4);}沒有輸出任何結(jié)果 輸出結(jié)果為3輸出結(jié)果是3和4 輸出結(jié)果是l、3和4ABCD提交單選題第3節(jié)循環(huán)結(jié)構(gòu)先來討論一個(gè)薪酬問題。甲對老板說每月(30天)給我3000-5000元。乙說你第1天給我1分錢,第2天給我2分錢,第3天給我4分錢…,你每天給我的錢是前一天的2倍。丙說我家境比較好,不缺錢,主要是鍛煉一下自己的能力。酬金嘛,我每天給你10萬,你只要付我乙所說的工資就行了。老板經(jīng)過考慮聘用了丙,請問30天后雙方各得到多少錢?循環(huán)結(jié)構(gòu)是指程序在滿足一定條件的情況下反復(fù)地執(zhí)行某個(gè)程序塊,這個(gè)程序塊通常稱為循環(huán)體。Java提供的三種循環(huán)語句:for循環(huán)、while循環(huán)和do-while循環(huán)。第3節(jié)循環(huán)結(jié)構(gòu)for語句for語句的語法格式:for(初始語句;條件表達(dá)式;迭代語句)
循環(huán)體;
inti;for(i=1;i<=2;i++)
System.out.println(i+i);for語句的執(zhí)行過程第3節(jié)循環(huán)結(jié)構(gòu)說明:1.for語句小括號(hào)內(nèi)是三條獨(dú)立的Java語句,都可以為空。但易造成死循環(huán)。for(;;)System.out.println("循環(huán)能結(jié)束嗎?");2.邏輯表達(dá)式也可以是包含邏輯運(yùn)算符的表達(dá)式,初始化語句和迭代語句可以是用逗號(hào)分開的按照順序執(zhí)行的多條語句。for(inti=1,j=10;i<=3&&j<4;i++,j--){…}第3節(jié)循環(huán)結(jié)構(gòu)3.若聲明多個(gè)變量,可以用逗號(hào)將它們分開,但這些變量必須是同種數(shù)據(jù)類型。doublej;for(inti=1,j=1.0;i<=3;i++){…}4.在for語句體內(nèi)聲明的變量,其作用域只在循環(huán)體內(nèi)有效,for循環(huán)結(jié)束,變量將不再起作用。intsum=0;for(inti=1;i<=100;i++)sum+=i;System.out.println(“i="+i);i的作用范圍
程序有錯(cuò)誤程序3-4第3節(jié)循環(huán)結(jié)構(gòu)for語句常常用在循環(huán)執(zhí)行的次數(shù)比較明確的情況下。當(dāng)程序需用某種邏輯表達(dá)式來決定循環(huán)的執(zhí)行與否時(shí),使用for循環(huán)不是很方便。這時(shí),可采用while或者do-while語句來實(shí)現(xiàn)。while語句while語句的一般語法格式為:while(條件表達(dá)式)
循環(huán)體;While語句的執(zhí)行過程第3節(jié)循環(huán)結(jié)構(gòu)說明1.循環(huán)體內(nèi)要有能夠改變邏輯表達(dá)式結(jié)果的語句,以保證邏輯表達(dá)的結(jié)果可以從true變?yōu)閒alse,避免出現(xiàn)死循環(huán)。
inti=1while(i<=3){System.out.println(i+i);
i++;}第3節(jié)循環(huán)結(jié)構(gòu)2.分號(hào)的誤用for(inti=1;i<=3;i++);System.out.println("for語句后面可以接分號(hào)嗎?");inti;While(i<=3);System.out.println("while語句后面可以接分號(hào)嗎?");分號(hào)不會(huì)使程序造成死循環(huán)!分號(hào)會(huì)使程序造成死循環(huán)!程序3-5第3節(jié)循環(huán)結(jié)構(gòu)do-while語句do-while語句的語法格式為:do
循環(huán)體;while(條件表達(dá)式);do-while語句執(zhí)行過程
inti=10;do
i=i+1;while(i<5);System.out.println(i);第3節(jié)循環(huán)結(jié)構(gòu)說明1.do-while語句的特點(diǎn)是先執(zhí)行循環(huán)體,再判斷條件。因此,循環(huán)體至少都會(huì)被執(zhí)行一次。而while語句循環(huán)體可能一次都不執(zhí)行。2.使用do-while語句時(shí),注意在while語句的結(jié)尾處有分號(hào)。程序3-6:求e=1+1/1!+1/2!+1/3!+…+1/N!的近似值,要求累加到最后一項(xiàng)的值小于0.00000001為止。
關(guān)于?for循環(huán)和while循環(huán)的說法正確的是()while循環(huán)先判斷后執(zhí)行,for循環(huán)先執(zhí)行后判斷。?while循環(huán)判斷條件一般是程序結(jié)果,for循環(huán)的判斷條件一般是非程序結(jié)果。兩種循環(huán)任何時(shí)候都不可以替換。兩種循環(huán)結(jié)構(gòu)中都必須有循環(huán)體,循環(huán)體不能為空。ABCD提交單選題第3節(jié)循環(huán)結(jié)構(gòu)嵌套循環(huán)
如果在一個(gè)循環(huán)內(nèi)又包含另外一個(gè)或者多個(gè)循環(huán),那么就形成了嵌套循環(huán)。第3節(jié)循環(huán)結(jié)構(gòu)for(inti=0;i<=2;i++){for(intj=0;j<=1;j++)System.out.println("i="+i+”,j=”+j);}程序段共執(zhí)行3*2次,結(jié)果為:i=0,j=0i=0,j=1i=1,j=0i=1,j=1i=2,j=0i=2,j=1程序3-7第4節(jié)控制跳轉(zhuǎn)語句標(biāo)號(hào)語句格式:
標(biāo)號(hào):語句;說明:1.標(biāo)號(hào)命名規(guī)則與一般的標(biāo)識(shí)符命名規(guī)則相同,它只是用來
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年企業(yè)風(fēng)險(xiǎn)管理試題風(fēng)險(xiǎn)評估與6S結(jié)合探討
- 2026年機(jī)械工程師認(rèn)證試題機(jī)械設(shè)備維修與維護(hù)題庫
- 2026年大學(xué)計(jì)算機(jī)專業(yè)期末考試操作系統(tǒng)計(jì)算機(jī)網(wǎng)絡(luò)綜合題
- 2026年教育心理學(xué)學(xué)生心理輔導(dǎo)方法考試題庫及答案
- 2026年網(wǎng)絡(luò)安全工程師技能等級(jí)認(rèn)證筆試指南
- 2026年少兒科普教育項(xiàng)目設(shè)計(jì)實(shí)戰(zhàn)考核
- 2026年企業(yè)管理戰(zhàn)略制定及執(zhí)行力考察經(jīng)典試題集
- 2026年網(wǎng)絡(luò)直播帶貨的消費(fèi)心理與市場前景認(rèn)證題集
- 2025 小學(xué)二年級(jí)道德與法治上冊公共場合不摸他人頭發(fā)課件
- 2026年市場營銷策略考試題目集
- 2026年新能源汽車動(dòng)力電池回收體系構(gòu)建行業(yè)報(bào)告
- 2026年空天科技衛(wèi)星互聯(lián)網(wǎng)應(yīng)用報(bào)告及未來五至十年全球通信創(chuàng)新報(bào)告
- 2026四川成都市錦江區(qū)國有企業(yè)招聘18人筆試備考試題及答案解析
- 2025學(xué)年度人教PEP五年級(jí)英語上冊期末模擬考試試卷(含答案含聽力原文)
- 2025年上海市普通高中學(xué)業(yè)水平等級(jí)性考試地理試卷(含答案)
- 腔鏡器械的清洗與管理
- 企業(yè)內(nèi)部承包責(zé)任制管理辦法
- 胰島細(xì)胞瘤課件
- 生鮮采購員知識(shí)培訓(xùn)內(nèi)容課件
- 《TCSUS69-2024智慧水務(wù)技術(shù)標(biāo)準(zhǔn)》
- 折彎機(jī)操作工作業(yè)指導(dǎo)書
評論
0/150
提交評論