版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、張樂(lè)樂(lè)JavaJava語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)2本章學(xué)習(xí)要點(diǎn):本章學(xué)習(xí)要點(diǎn):數(shù)據(jù)運(yùn)算數(shù)據(jù)運(yùn)算語(yǔ)句語(yǔ)句Java程序?qū)嵗绦驅(qū)嵗? 運(yùn)算符:運(yùn)算符:表示各種不同運(yùn)算的符號(hào)就是運(yùn)算符。表示各種不同運(yùn)算的符號(hào)就是運(yùn)算符。( (有運(yùn)算對(duì)象(操作數(shù))個(gè)數(shù)及類(lèi)型、運(yùn)算優(yōu)先級(jí)、有運(yùn)算對(duì)象(操作數(shù))個(gè)數(shù)及類(lèi)型、運(yùn)算優(yōu)先級(jí)、結(jié)合性等特性。結(jié)合性等特性。) ) 操作數(shù):操作數(shù):由運(yùn)算符連接的參與運(yùn)算操作的數(shù)據(jù)由運(yùn)算符連接的參與運(yùn)算操作的數(shù)據(jù)稱(chēng)為操作數(shù)。稱(chēng)為操作數(shù)。 表達(dá)式:表達(dá)式:由運(yùn)算符把操作數(shù)(可以是變量、常由運(yùn)算符把操作數(shù)(可以是變量、常量等)連接成的一個(gè)有意義的式子就是一個(gè)表達(dá)式量等)連接成的一個(gè)有意義的式
2、子就是一個(gè)表達(dá)式 。2.1 數(shù)據(jù)運(yùn)算數(shù)據(jù)運(yùn)算 4賦值運(yùn)算符都是二元運(yùn)算符,具有右結(jié)合性。賦值運(yùn)算符都是二元運(yùn)算符,具有右結(jié)合性。 賦值運(yùn)算符賦值運(yùn)算符“=”=”左邊的操作數(shù)必須是變量,不能左邊的操作數(shù)必須是變量,不能是常量或表達(dá)式;右邊的操作數(shù)可以是變量、常量或表是常量或表達(dá)式;右邊的操作數(shù)可以是變量、常量或表達(dá)式。賦值時(shí),右邊的操作數(shù)與左邊的變量類(lèi)型要匹配。達(dá)式。賦值時(shí),右邊的操作數(shù)與左邊的變量類(lèi)型要匹配。基本賦值運(yùn)算符的使用形式是:基本賦值運(yùn)算符的使用形式是: 變量名變量名 表達(dá)式;表達(dá)式;擴(kuò)展賦值運(yùn)算符的使用形式是:擴(kuò)展賦值運(yùn)算符的使用形式是: 變量名變量名 運(yùn)算符表達(dá)式;運(yùn)算符表達(dá)式;
3、p13-14 p13-14 注意事項(xiàng)注意事項(xiàng)2.1.1 賦值運(yùn)算賦值運(yùn)算5 算術(shù)運(yùn)算符按算術(shù)運(yùn)算符按操作數(shù)操作數(shù)的多少可分為一元(或稱(chēng)單目)的多少可分為一元(或稱(chēng)單目)和二元(或稱(chēng)雙目)兩類(lèi),一元運(yùn)算符一次對(duì)一個(gè)操作和二元(或稱(chēng)雙目)兩類(lèi),一元運(yùn)算符一次對(duì)一個(gè)操作數(shù)進(jìn)行操作,二元運(yùn)算符一次對(duì)兩個(gè)操作數(shù)進(jìn)行操作。數(shù)進(jìn)行操作,二元運(yùn)算符一次對(duì)兩個(gè)操作數(shù)進(jìn)行操作。算術(shù)運(yùn)算符的算術(shù)運(yùn)算符的操作數(shù)類(lèi)型操作數(shù)類(lèi)型是數(shù)值類(lèi)型。是數(shù)值類(lèi)型。 一元運(yùn)算符有一元運(yùn)算符有+、-。一元運(yùn)算符的結(jié)合性是右結(jié)合一元運(yùn)算符的結(jié)合性是右結(jié)合性。性。 二元運(yùn)算符有二元運(yùn)算符有+、-、*、/和和%,這些運(yùn)算符并不改,這些運(yùn)算符并
4、不改變操作數(shù)的值,而是返回一個(gè)必須賦給變量的值,二元變操作數(shù)的值,而是返回一個(gè)必須賦給變量的值,二元算術(shù)運(yùn)算符具有左結(jié)合性。算術(shù)運(yùn)算符具有左結(jié)合性。 p14 p14 注意事項(xiàng)注意事項(xiàng)2.1.2 算術(shù)運(yùn)算算術(shù)運(yùn)算6自增自增+、自減、自減-是單目運(yùn)算符,要求運(yùn)算分量是單目運(yùn)算符,要求運(yùn)算分量是數(shù)值類(lèi)型的是數(shù)值類(lèi)型的變量變量。其作用是使變量的值增。其作用是使變量的值增1 1或或減減1 1。注意前綴和后綴的區(qū)別。注意前綴和后綴的區(qū)別。例:例:i=4i=4;j=+i;j=+i; i=4 i=4;j=i+;j=i+; i=4 i=4;j=-i;j=-i; i=4 i=4;j=i-;j=i-;p15 p15
5、 注意事項(xiàng)注意事項(xiàng)2.1.3 自增和自減運(yùn)算自增和自減運(yùn)算7完成操作數(shù)的比較運(yùn)算,結(jié)果為完成操作數(shù)的比較運(yùn)算,結(jié)果為true、false(布爾類(lèi)型值(布爾類(lèi)型值)。包括:包括:=,!=,=都是雙目運(yùn)算都是雙目運(yùn)算符。符。運(yùn)算符運(yùn)算符“=”和和“!=”的運(yùn)算優(yōu)先級(jí)低于另外的運(yùn)算優(yōu)先級(jí)低于另外四個(gè)關(guān)系運(yùn)算符。四個(gè)關(guān)系運(yùn)算符。 2.1.4 關(guān)系運(yùn)算關(guān)系運(yùn)算8l包括:包括:&, | , !l注意:邏輯運(yùn)算的操作數(shù)必須是布爾型的,注意:邏輯運(yùn)算的操作數(shù)必須是布爾型的,結(jié)果也是布爾型的!結(jié)果也是布爾型的!l優(yōu)先級(jí)關(guān)系見(jiàn)優(yōu)先級(jí)關(guān)系見(jiàn)p213附錄附錄Bl【例】【例】int a=2,b=3,c=4,d=5; b
6、oolean x=a+b+&c+d+;l【例】要表示【例】要表示y/x2并且并且x!=0,則表達(dá)式應(yīng),則表達(dá)式應(yīng)為為:&,如果其前,如果其前面的表達(dá)式為假,面的表達(dá)式為假,則不再計(jì)算其后則不再計(jì)算其后面的表達(dá)式面的表達(dá)式 (a=3,b=4,c=4,d=5,x=false)2.1.5 (布爾布爾)邏輯運(yùn)算邏輯運(yùn)算x!=0 & y/x29 條件運(yùn)算符是一種三元運(yùn)算符,右結(jié)合型,條件運(yùn)算符是一種三元運(yùn)算符,右結(jié)合型,它的格式如下:它的格式如下: 邏輯表達(dá)式邏輯表達(dá)式 ?表達(dá)式表達(dá)式1: 表達(dá)式表達(dá)式2 【例】【例】c=ab?a:b xy?x:uv?u:v 注意條件表達(dá)式的返回值類(lèi)型由表達(dá)式注意條件表
7、達(dá)式的返回值類(lèi)型由表達(dá)式1和和表達(dá)式表達(dá)式2的類(lèi)型所占字節(jié)數(shù)高的決定。的類(lèi)型所占字節(jié)數(shù)高的決定。2.1.6 條件運(yùn)算條件運(yùn)算101、位運(yùn)算及移位運(yùn)算、位運(yùn)算及移位運(yùn)算 位運(yùn)算的運(yùn)算分量只能是整型數(shù)據(jù),位運(yùn)算把運(yùn)算對(duì)位運(yùn)算的運(yùn)算分量只能是整型數(shù)據(jù),位運(yùn)算把運(yùn)算對(duì)象看作是由二進(jìn)制位組成的位串,逐位完成指定的運(yùn)算,象看作是由二進(jìn)制位組成的位串,逐位完成指定的運(yùn)算,得到一個(gè)新的位串。得到一個(gè)新的位串。 位運(yùn)算符有位運(yùn)算符有4 4個(gè),按優(yōu)先級(jí)從高到低順序,依次為:個(gè),按優(yōu)先級(jí)從高到低順序,依次為: ( (位反位反) )、& (& (位與位與) )、 ( (位異或位異或) )、| (| (位或位或) )。
8、 移位運(yùn)算:將整數(shù)作為二進(jìn)制位的位串向左或向右移位運(yùn)算:將整數(shù)作為二進(jìn)制位的位串向左或向右移動(dòng)。移位運(yùn)算符有三個(gè):移動(dòng)。移位運(yùn)算符有三個(gè): 左移運(yùn)算符(左移運(yùn)算符()、 邏輯右移運(yùn)算符(邏輯右移運(yùn)算符()2.1.7 其他運(yùn)算符其他運(yùn)算符左移一位相當(dāng)于乘左移一位相當(dāng)于乘2 2,如如4242122,結(jié)果為,結(jié)果為3 3 注意:對(duì)于負(fù)數(shù),邏輯右移左端補(bǔ)注意:對(duì)于負(fù)數(shù),邏輯右移左端補(bǔ)0 0,算術(shù)右移左端補(bǔ),算術(shù)右移左端補(bǔ)符號(hào)位,即符號(hào)位,即1 1。112、字符串運(yùn)算符、字符串運(yùn)算符 運(yùn)算符運(yùn)算符“+”+”可以實(shí)現(xiàn)兩個(gè)或多個(gè)字符串可以實(shí)現(xiàn)兩個(gè)或多個(gè)字符串的連接,也可實(shí)現(xiàn)的連接,也可實(shí)現(xiàn)字符串字符串與與其
9、他類(lèi)對(duì)象的連接其他類(lèi)對(duì)象的連接,在連接時(shí),其他類(lèi)對(duì)象會(huì)被轉(zhuǎn)換成字符串。另在連接時(shí),其他類(lèi)對(duì)象會(huì)被轉(zhuǎn)換成字符串。另外,運(yùn)算符外,運(yùn)算符“+=”+=”把兩個(gè)字符串連接的結(jié)果放把兩個(gè)字符串連接的結(jié)果放進(jìn)第一個(gè)字符串里。例如,當(dāng)想把幾項(xiàng)輸出內(nèi)進(jìn)第一個(gè)字符串里。例如,當(dāng)想把幾項(xiàng)輸出內(nèi)容輸出在同一行里時(shí)使用的就是容輸出在同一行里時(shí)使用的就是“+”+”運(yùn)算符。運(yùn)算符。2.1.7 其他運(yùn)算符其他運(yùn)算符12補(bǔ)充補(bǔ)充: 對(duì)象運(yùn)算符(對(duì)象運(yùn)算符(instanceof) 對(duì)象運(yùn)算符對(duì)象運(yùn)算符instanceofinstanceof用來(lái)判斷一個(gè)對(duì)象是否是用來(lái)判斷一個(gè)對(duì)象是否是某一個(gè)類(lèi)或者其子類(lèi)的實(shí)例。如果對(duì)象是該類(lèi)或者
10、其某一個(gè)類(lèi)或者其子類(lèi)的實(shí)例。如果對(duì)象是該類(lèi)或者其子類(lèi)的實(shí)例,返回子類(lèi)的實(shí)例,返回tureture;否則返回;否則返回flaseflase。 運(yùn)算符運(yùn)算符 運(yùn)算符用于訪問(wèn)對(duì)象實(shí)例或者類(lèi)的類(lèi)成員函數(shù)運(yùn)算符用于訪問(wèn)對(duì)象實(shí)例或者類(lèi)的類(lèi)成員函數(shù)( (即靜態(tài)的即靜態(tài)的) )。new運(yùn)算符運(yùn)算符 newnew運(yùn)算符用于創(chuàng)建一個(gè)新的對(duì)象或者新的數(shù)組。運(yùn)算符用于創(chuàng)建一個(gè)新的對(duì)象或者新的數(shù)組。2.1.7 其他運(yùn)算符其他運(yùn)算符13 表達(dá)式是由操作數(shù)和運(yùn)算符按一表達(dá)式是由操作數(shù)和運(yùn)算符按一定的語(yǔ)法形式組成的符號(hào)序列定的語(yǔ)法形式組成的符號(hào)序列.類(lèi)型轉(zhuǎn)換類(lèi)型轉(zhuǎn)換優(yōu)先級(jí)優(yōu)先級(jí)結(jié)合性結(jié)合性總結(jié):總結(jié): 運(yùn)算符的優(yōu)先級(jí)和表達(dá)式
11、運(yùn)算符的優(yōu)先級(jí)和表達(dá)式14(一)類(lèi)型轉(zhuǎn)換(一)類(lèi)型轉(zhuǎn)換1. 自動(dòng)類(lèi)型轉(zhuǎn)換自動(dòng)類(lèi)型轉(zhuǎn)換 整型、實(shí)型和字符型數(shù)據(jù)可以進(jìn)行混合運(yùn)算。整型、實(shí)型和字符型數(shù)據(jù)可以進(jìn)行混合運(yùn)算。在運(yùn)算中,不同類(lèi)型的數(shù)據(jù)先轉(zhuǎn)換成相同類(lèi)型,然在運(yùn)算中,不同類(lèi)型的數(shù)據(jù)先轉(zhuǎn)換成相同類(lèi)型,然后再進(jìn)行運(yùn)算。轉(zhuǎn)換從低級(jí)到高級(jí)??苫旌线\(yùn)算數(shù)后再進(jìn)行運(yùn)算。轉(zhuǎn)換從低級(jí)到高級(jí)??苫旌线\(yùn)算數(shù)據(jù)類(lèi)型從低到高排列如下:據(jù)類(lèi)型從低到高排列如下: 低低 byte,short,char,int,long,float,double 高高總結(jié):總結(jié): 運(yùn)算符的優(yōu)先級(jí)和表達(dá)式運(yùn)算符的優(yōu)先級(jí)和表達(dá)式15(一)類(lèi)型轉(zhuǎn)換(一)類(lèi)型轉(zhuǎn)換2. 強(qiáng)制類(lèi)型轉(zhuǎn)換強(qiáng)制類(lèi)型轉(zhuǎn)換(
12、p19) 高級(jí)數(shù)據(jù)要轉(zhuǎn)換為低級(jí)數(shù)據(jù)時(shí),需進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換,高級(jí)數(shù)據(jù)要轉(zhuǎn)換為低級(jí)數(shù)據(jù)時(shí),需進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換,JavaJava不象不象C/C+C/C+那樣在賦值時(shí)允許自動(dòng)類(lèi)型轉(zhuǎn)換那樣在賦值時(shí)允許自動(dòng)類(lèi)型轉(zhuǎn)換。從一種。從一種類(lèi)型轉(zhuǎn)換到另一種類(lèi)型可以使用下面的語(yǔ)句:類(lèi)型轉(zhuǎn)換到另一種類(lèi)型可以使用下面的語(yǔ)句:int a5; char b;b=(char)a; 加括號(hào)的加括號(hào)的charchar告訴編譯器想把整型變成字符并把它放告訴編譯器想把整型變成字符并把它放在在b b里。里??偨Y(jié):總結(jié): 運(yùn)算符的優(yōu)先級(jí)和表達(dá)式運(yùn)算符的優(yōu)先級(jí)和表達(dá)式16(一)類(lèi)型轉(zhuǎn)換(一)類(lèi)型轉(zhuǎn)換3. 表達(dá)式求值中的自動(dòng)類(lèi)型提升表達(dá)式求值
13、中的自動(dòng)類(lèi)型提升 在表達(dá)式的求值過(guò)程中,運(yùn)算中間值的精度有時(shí)會(huì)超出操作數(shù)在表達(dá)式的求值過(guò)程中,運(yùn)算中間值的精度有時(shí)會(huì)超出操作數(shù)的取值范圍。例如:的取值范圍。例如: byte x = 30,y = 50,z = 100; int a = x * y / z; Java Java語(yǔ)言在對(duì)表達(dá)式求值時(shí),自動(dòng)提升語(yǔ)言在對(duì)表達(dá)式求值時(shí),自動(dòng)提升bytebyte或或shortshort類(lèi)型的數(shù)據(jù)類(lèi)型的數(shù)據(jù)為為intint類(lèi)型的。類(lèi)型的。 自動(dòng)類(lèi)型提升對(duì)數(shù)據(jù)的運(yùn)算帶來(lái)了方便,但也容易引起編譯錯(cuò)自動(dòng)類(lèi)型提升對(duì)數(shù)據(jù)的運(yùn)算帶來(lái)了方便,但也容易引起編譯錯(cuò)誤。例如:誤。例如: byte x = 30; x = - x
14、; / 可測(cè)試,會(huì)出現(xiàn)編譯錯(cuò)誤!不能向可測(cè)試,會(huì)出現(xiàn)編譯錯(cuò)誤!不能向byte變量賦變量賦int值值總結(jié):總結(jié): 運(yùn)算符的優(yōu)先級(jí)和表達(dá)式運(yùn)算符的優(yōu)先級(jí)和表達(dá)式17正負(fù)號(hào),正負(fù)號(hào),+,-,!-,!(二)(二) 優(yōu)先級(jí)優(yōu)先級(jí) (參見(jiàn)附錄參見(jiàn)附錄B) 一個(gè)表達(dá)式中可能有多個(gè)運(yùn)算符,它們按一個(gè)表達(dá)式中可能有多個(gè)運(yùn)算符,它們按照優(yōu)先級(jí)從高到低的順序進(jìn)行計(jì)算。照優(yōu)先級(jí)從高到低的順序進(jìn)行計(jì)算。 單目單目 算術(shù)算術(shù) 位移位移 關(guān)系關(guān)系 = != 邏輯邏輯 條件(三目)條件(三目) 賦值賦值(三)(三) 結(jié)合性結(jié)合性 結(jié)合性確定了同級(jí)運(yùn)算符的運(yùn)算順序。結(jié)合性確定了同級(jí)運(yùn)算符的運(yùn)算順序。(單目、三目及賦值是右結(jié)合,
15、其余均是左結(jié)(單目、三目及賦值是右結(jié)合,其余均是左結(jié)合)合)總結(jié):總結(jié): 運(yùn)算符的優(yōu)先級(jí)和表達(dá)式運(yùn)算符的優(yōu)先級(jí)和表達(dá)式1819 Java Java用用類(lèi)類(lèi)搭起程序的框架搭起程序的框架, ,以以方法方法實(shí)現(xiàn)實(shí)現(xiàn)類(lèi)的功能類(lèi)的功能, ,在方法中用各種在方法中用各種語(yǔ)句語(yǔ)句結(jié)構(gòu)來(lái)控制結(jié)構(gòu)來(lái)控制程序的流程程序的流程. .2.2 語(yǔ)句語(yǔ)句 20 基本語(yǔ)句主要有表達(dá)式語(yǔ)句、空語(yǔ)句、基本語(yǔ)句主要有表達(dá)式語(yǔ)句、空語(yǔ)句、breakbreak語(yǔ)句、語(yǔ)句、continuecontinue語(yǔ)句、語(yǔ)句、returnreturn語(yǔ)句等。語(yǔ)句等。基本語(yǔ)句都以分號(hào)為結(jié)束符?;菊Z(yǔ)句都以分號(hào)為結(jié)束符。2.2.1 基本語(yǔ)句基本語(yǔ)句
16、21 用一對(duì)花括號(hào)用一對(duì)花括號(hào)“ ” ”將零個(gè)或多個(gè)語(yǔ)句括起將零個(gè)或多個(gè)語(yǔ)句括起來(lái),就構(gòu)成一個(gè)塊(也稱(chēng)復(fù)合語(yǔ)句)。來(lái),就構(gòu)成一個(gè)塊(也稱(chēng)復(fù)合語(yǔ)句)。 在塊中允許包含另一個(gè)塊(塊嵌套)。在在塊中允許包含另一個(gè)塊(塊嵌套)。在JavaJava語(yǔ)言中,允許一個(gè)塊出現(xiàn)在任何單一語(yǔ)句可語(yǔ)言中,允許一個(gè)塊出現(xiàn)在任何單一語(yǔ)句可以出現(xiàn)的地方。以出現(xiàn)的地方。 2.2.2 復(fù)合語(yǔ)句(塊作用域)復(fù)合語(yǔ)句(塊作用域)class 塊塊 public static void main(String args ) int a=5; a+=8; int b=6; b=b+a; System.out.println(a+ +b
17、); 注意:此句移到注意:此句移到括號(hào)外則出錯(cuò)!括號(hào)外則出錯(cuò)!22 塊體現(xiàn)了塊體現(xiàn)了JavaJava面向?qū)ο蟪绦蛟O(shè)計(jì)的封裝面向?qū)ο蟪绦蛟O(shè)計(jì)的封裝概念,概念,在一個(gè)塊中聲明的局部變量的作用域在一個(gè)塊中聲明的局部變量的作用域是該變量的聲明開(kāi)始點(diǎn)到最小的包含其聲明是該變量的聲明開(kāi)始點(diǎn)到最小的包含其聲明的塊結(jié)束。的塊結(jié)束。 塊嵌套時(shí)塊嵌套時(shí), ,外層聲明的變量在內(nèi)層仍然外層聲明的變量在內(nèi)層仍然有效有效, ,但內(nèi)層不能再聲明與外層變量同名的但內(nèi)層不能再聲明與外層變量同名的變量變量. . 2.2.2 復(fù)合語(yǔ)句(塊作用域)復(fù)合語(yǔ)句(塊作用域)23 分支語(yǔ)句在程序中的作用是使程序更靈活,分支語(yǔ)句在程序中的作用
18、是使程序更靈活,它允許程序根據(jù)不同的情況、不同的條件等采取它允許程序根據(jù)不同的情況、不同的條件等采取不同的動(dòng)作、進(jìn)行不同的操作,實(shí)現(xiàn)選擇結(jié)構(gòu)。不同的動(dòng)作、進(jìn)行不同的操作,實(shí)現(xiàn)選擇結(jié)構(gòu)。在在JavaJava語(yǔ)言中使用的分支語(yǔ)句有語(yǔ)言中使用的分支語(yǔ)句有if - elseif - else語(yǔ)句語(yǔ)句和和switchswitch語(yǔ)句。語(yǔ)句。2.2.3-2.2.4 分支分支(選擇選擇)結(jié)構(gòu)結(jié)構(gòu)241.if - else1.if - else語(yǔ)句語(yǔ)句【例】檢查用【例】檢查用random()random()方法產(chǎn)生的一個(gè)字符,方法產(chǎn)生的一個(gè)字符,判斷是否為英文大寫(xiě)字母、小寫(xiě)字母、數(shù)字、空判斷是否為英文大寫(xiě)字母
19、、小寫(xiě)字母、數(shù)字、空格或是其他符號(hào),并輸出相應(yīng)信息。格或是其他符號(hào),并輸出相應(yīng)信息。random()random()方法產(chǎn)生的隨機(jī)數(shù)在方法產(chǎn)生的隨機(jī)數(shù)在0.00.0和和1.01.0之間之間程序要根據(jù)程序要根據(jù)5 5種不同的字符情況輸出不同的信息。這屬種不同的字符情況輸出不同的信息。這屬于多分支的程序設(shè)計(jì),采用于多分支的程序設(shè)計(jì),采用ifif嵌套的方法。嵌套的方法。2.2.3-2.2.4 分支分支(選擇選擇)結(jié)構(gòu)結(jié)構(gòu)25class Letter public static void main(String args) char ch; ch=(char)(Math.random( )*128);
20、 if(ch = ) System.out.println(ch+是空格是空格!); else if(ch = a & ch = A & ch = 0 & ch = 9) System.out.println(ch + 是數(shù)字是數(shù)字!); else System.out.println(ch + 是其他符號(hào)是其他符號(hào)!); 注意注意:Java:Java編譯器總是編譯器總是將將elseelse與其與其最近未配對(duì)最近未配對(duì)的的ifif配對(duì)配對(duì)262. switch2. switch語(yǔ)句語(yǔ)句switchswitch多分支語(yǔ)句結(jié)構(gòu)實(shí)際上也是一種多分支語(yǔ)句結(jié)構(gòu)實(shí)際上也是一種if - elseif - e
21、lse結(jié)構(gòu),結(jié)構(gòu),不過(guò)它使得在編碼時(shí)很容易寫(xiě)出判斷條件,特別是有很多不過(guò)它使得在編碼時(shí)很容易寫(xiě)出判斷條件,特別是有很多選項(xiàng)而且條件比較簡(jiǎn)單的時(shí)候。選項(xiàng)而且條件比較簡(jiǎn)單的時(shí)候。switchswitch的語(yǔ)法結(jié)構(gòu)如下:的語(yǔ)法結(jié)構(gòu)如下: switch(表達(dá)式表達(dá)式) case 值值1:語(yǔ)句:語(yǔ)句1;break; case 值值2:語(yǔ)句:語(yǔ)句2;break; . . case 值值N:語(yǔ)句:語(yǔ)句N(xiāo);break; default:語(yǔ)句:語(yǔ)句N(xiāo)+1; 表達(dá)式必須為表達(dá)式必須為bytebyte,shortshort,intint,或或charchar類(lèi)型類(lèi)型 常量值必須是與表常量值必須是與表達(dá)式類(lèi)型兼容,且
22、達(dá)式類(lèi)型兼容,且不能重復(fù),不能重復(fù),breakbreak跳跳出出casecase語(yǔ)句段語(yǔ)句段若所有的若所有的casecase都不匹配,都不匹配,則可去執(zhí)行則可去執(zhí)行defaultdefault語(yǔ)句語(yǔ)句2.2.3-2.2.4 分支分支(選擇選擇)結(jié)構(gòu)結(jié)構(gòu)272.2.3-2.2.4 分支分支(選擇選擇)結(jié)構(gòu)結(jié)構(gòu)public class A public static void main (String args) int s=1; switch(s) case 1:System.out.println(上街購(gòu)物去!上街購(gòu)物去!n); break; case 2:System.out.println
23、(去游泳!去游泳!n); break; case 3:System.out.println(在家看電視!在家看電視!n); break; default:System.out.println(錯(cuò)誤選擇!錯(cuò)誤選擇!n); break; 28循環(huán)語(yǔ)句的作用是使某一段程序根據(jù)需循環(huán)語(yǔ)句的作用是使某一段程序根據(jù)需要重復(fù)執(zhí)行多次。要重復(fù)執(zhí)行多次。循環(huán)語(yǔ)句由循環(huán)體和循環(huán)條件兩部分構(gòu)循環(huán)語(yǔ)句由循環(huán)體和循環(huán)條件兩部分構(gòu)成,循環(huán)體是要重復(fù)執(zhí)行的語(yǔ)句,循環(huán)成,循環(huán)體是要重復(fù)執(zhí)行的語(yǔ)句,循環(huán)條件決定循環(huán)的開(kāi)始、重復(fù)執(zhí)行以及結(jié)條件決定循環(huán)的開(kāi)始、重復(fù)執(zhí)行以及結(jié)束循環(huán)。束循環(huán)。2.3.6-2.2.10 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)
24、29whilewhile語(yǔ)句的一般格式為:語(yǔ)句的一般格式為: while( while( 布爾表達(dá)式布爾表達(dá)式 ) )語(yǔ)句語(yǔ)句 whilewhile語(yǔ)句循環(huán)體最少執(zhí)行次數(shù)為語(yǔ)句循環(huán)體最少執(zhí)行次數(shù)為0 0次。次。do_whiledo_while循環(huán)語(yǔ)句的一般格式為:循環(huán)語(yǔ)句的一般格式為: dodo 語(yǔ)句語(yǔ)句 while( while( 布爾表達(dá)式布爾表達(dá)式 );); do_while do_while語(yǔ)句的循環(huán)體至少執(zhí)行語(yǔ)句的循環(huán)體至少執(zhí)行1 1次次. .死循環(huán)可以用死循環(huán)可以用ctrl+cctrl+c鍵退出鍵退出2.3.6-2.2.10 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)while語(yǔ)句語(yǔ)句與與do-while語(yǔ)
25、句語(yǔ)句 int count=1; while(count=n) if(countn) System.out.print(count+,); else System.out.println(count); count+; c=0; do n/=10; c+; while(n!=0); System.out.println(c);30forfor循環(huán)語(yǔ)句在幾種循環(huán)語(yǔ)句中的格式與用法最靈活,循環(huán)語(yǔ)句在幾種循環(huán)語(yǔ)句中的格式與用法最靈活,它的一般格式為:它的一般格式為: for( 表達(dá)式表達(dá)式1 ; 表達(dá)式表達(dá)式2 ; 表達(dá)式表達(dá)式3 )語(yǔ)句語(yǔ)句 其中,表達(dá)式其中,表達(dá)式1 1指出指出forfor循環(huán)的
26、循環(huán)初值;表達(dá)式循環(huán)的循環(huán)初值;表達(dá)式2 2是一關(guān)系或邏輯表達(dá)式,值為是一關(guān)系或邏輯表達(dá)式,值為falsefalse時(shí)循環(huán)結(jié)束;表達(dá)式時(shí)循環(huán)結(jié)束;表達(dá)式3 3指出每次循環(huán)時(shí)所進(jìn)行的計(jì)算和更新。指出每次循環(huán)時(shí)所進(jìn)行的計(jì)算和更新。3 3個(gè)表達(dá)式在使個(gè)表達(dá)式在使用中可根據(jù)需要,部分或全部不寫(xiě)均可。用中可根據(jù)需要,部分或全部不寫(xiě)均可。2.3.6-2.2.10 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) for語(yǔ)句語(yǔ)句for(s=0,i=1;i=100;i+) s+=i;31 一個(gè)循環(huán)體內(nèi)又包含另一個(gè)完整的循環(huán)結(jié)構(gòu),一個(gè)循環(huán)體內(nèi)又包含另一個(gè)完整的循環(huán)結(jié)構(gòu),稱(chēng)為稱(chēng)為循環(huán)的嵌套循環(huán)的嵌套。內(nèi)嵌的循環(huán)中還可以嵌套循環(huán),稱(chēng)。內(nèi)嵌的循環(huán)中
27、還可以嵌套循環(huán),稱(chēng)多重循環(huán)多重循環(huán)。 設(shè)計(jì)循環(huán)嵌套結(jié)構(gòu)時(shí),要注意內(nèi)存循環(huán)語(yǔ)句必設(shè)計(jì)循環(huán)嵌套結(jié)構(gòu)時(shí),要注意內(nèi)存循環(huán)語(yǔ)句必須完整地包含在外層循環(huán)的循環(huán)體中,不得出現(xiàn)內(nèi)外須完整地包含在外層循環(huán)的循環(huán)體中,不得出現(xiàn)內(nèi)外層循環(huán)體交叉的情況。層循環(huán)體交叉的情況。JavaJava語(yǔ)言中的三種循環(huán)語(yǔ)句都語(yǔ)言中的三種循環(huán)語(yǔ)句都可以組成多重循環(huán)。可以組成多重循環(huán)。2.3.6-2.2.10 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) 循環(huán)嵌套循環(huán)嵌套32【例】輸出星號(hào)符號(hào)組成的菱形圖案【例】輸出星號(hào)符號(hào)組成的菱形圖案class PrintStar public static void main(String args) for(int i=
28、-2;i=2;i+) for(int j=1;j=Math.abs(i);j+) System.out.print( ); for(int j=1;j=(3-Math.abs(i)*2-1;j+) System.out.print(*); System.out.println(); * * * * * * * * * * * * * * * * *33【例【例2.10】已知直角三角形每邊長(zhǎng)為】已知直角三角形每邊長(zhǎng)為25以?xún)?nèi)的整數(shù),求出所以?xún)?nèi)的整數(shù),求出所有這樣的直角三角形三邊長(zhǎng)。有這樣的直角三角形三邊長(zhǎng)。public class Example2_10 public static void m
29、ain (String args) int a,b,c; for(c=3;c=25;c+) for(b=1;bc;b+) for(a=1;a=b;a+) if(a*a+b*b=c*c) System.out.println(A=+a+tb=+b+tC=+c); 342.3.6-2.2.10 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) breakclass PrimeNbelow public static void main(String args ) int i,j; for( j=2;j=50;j+) for( i=2;ij/2) System.out.print(n+j+是質(zhì)數(shù)是質(zhì)數(shù)); 【例【例2.122.12
30、】求】求5050以?xún)?nèi)的所有質(zhì)數(shù)以?xún)?nèi)的所有質(zhì)數(shù)352.3.6-2.2.10 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) continueclass PrimeNbelow public static void main(String args ) int i; for( i=1; i=5; i+ ) if ( i%2!=0) System.out.print(*); else continue; System.out.print(#); System.out.println($n); 運(yùn)行結(jié)果:運(yùn)行結(jié)果: * # * # * # $ 36372.2.5 trycatch語(yǔ)句語(yǔ)句 Java異常處理異常處理 Java Jav
31、a是一個(gè)講究安全性的語(yǔ)言。任何是一個(gè)講究安全性的語(yǔ)言。任何可能在程序運(yùn)行過(guò)程中產(chǎn)生打斷程序正??赡茉诔绦蜻\(yùn)行過(guò)程中產(chǎn)生打斷程序正常執(zhí)行的事件都有用來(lái)保護(hù)的陷阱。執(zhí)行的事件都有用來(lái)保護(hù)的陷阱。JavaJava異異常處理機(jī)制提供了去檢查及處理產(chǎn)生各種常處理機(jī)制提供了去檢查及處理產(chǎn)生各種錯(cuò)誤、異常事件的方法。錯(cuò)誤、異常事件的方法。38在程序運(yùn)行過(guò)程中發(fā)生的、會(huì)打斷程序正常執(zhí)行的事件在程序運(yùn)行過(guò)程中發(fā)生的、會(huì)打斷程序正常執(zhí)行的事件稱(chēng)為異常(稱(chēng)為異常(Exception),也稱(chēng)為例外。),也稱(chēng)為例外。程序運(yùn)行過(guò)程中可能會(huì)有許多意料之外的事情發(fā)生,程序運(yùn)行過(guò)程中可能會(huì)有許多意料之外的事情發(fā)生, 例如例如:
32、 零用作了除數(shù)(產(chǎn)生算術(shù)異常零用作了除數(shù)(產(chǎn)生算術(shù)異常ArithmeticException) 在指定的磁盤(pán)上沒(méi)有要打開(kāi)的文件在指定的磁盤(pán)上沒(méi)有要打開(kāi)的文件(FileNotFoundException)對(duì)于一個(gè)實(shí)用的程序來(lái)說(shuō),處理異常的能力是一個(gè)不可對(duì)于一個(gè)實(shí)用的程序來(lái)說(shuō),處理異常的能力是一個(gè)不可缺少的部分,它的目的是保證程序在出現(xiàn)任何異常的情缺少的部分,它的目的是保證程序在出現(xiàn)任何異常的情況下仍能按照計(jì)劃執(zhí)行。況下仍能按照計(jì)劃執(zhí)行。 2.2.5 trycatch語(yǔ)句語(yǔ)句 Java異常處理異常處理392.2.異常處理異常處理在在JavaJava語(yǔ)言中,異常有幾種處理方式:語(yǔ)言中,異常有幾種處理
33、方式: (1)(1)可以不處理運(yùn)行時(shí)異常,由可以不處理運(yùn)行時(shí)異常,由JavaJava虛擬機(jī)虛擬機(jī)自動(dòng)自動(dòng)進(jìn)行處理。進(jìn)行處理。 (2)(2)使用使用try-catch-finallytry-catch-finally語(yǔ)句捕獲異常。語(yǔ)句捕獲異常。 (3)(3)通過(guò)通過(guò)throwsthrows子句聲明拋棄異常,還可以子句聲明拋棄異常,還可以自定義異常,用自定義異常,用throwthrow語(yǔ)句來(lái)拋出它。語(yǔ)句來(lái)拋出它。2.2.5 trycatch語(yǔ)句語(yǔ)句 Java異常處理異常處理40 try 語(yǔ)句語(yǔ)句 / 可能產(chǎn)生異常的語(yǔ)句可能產(chǎn)生異常的語(yǔ)句 / 不能有其它語(yǔ)句分隔不能有其它語(yǔ)句分隔 catch(異常類(lèi)
34、異常類(lèi) e) / 異常參數(shù)異常參數(shù) 語(yǔ)句語(yǔ)句 / 異常處理程序異常處理程序 catch(異常類(lèi)異常類(lèi) e) / 異常參數(shù)異常參數(shù) 語(yǔ)句語(yǔ)句 / 異常處理程序異常處理程序 finally 語(yǔ)句語(yǔ)句 /最終處理(缺省處理)最終處理(缺省處理); /Other Statements2.2.5 trycatch語(yǔ)句語(yǔ)句 Java異常處理異常處理41捕獲除數(shù)為零的異常,并顯示相應(yīng)信息。捕獲除數(shù)為零的異常,并顯示相應(yīng)信息。class ExceptionDemo1 public static void main(String args) int d, a; try / 監(jiān)控可能產(chǎn)生異常的代碼塊監(jiān)控可能產(chǎn)生異
35、常的代碼塊 d = 0; a = 68 / d; System.out.println(本字符串將不顯示。本字符串將不顯示。); catch (ArithmeticException e) /捕獲捕獲divide-by-zero錯(cuò)誤錯(cuò)誤 System.out.println(產(chǎn)生用零除錯(cuò)誤。產(chǎn)生用零除錯(cuò)誤。); finally System.out.println(finally語(yǔ)句被執(zhí)行語(yǔ)句被執(zhí)行); System.out.println(在捕獲語(yǔ)句后。在捕獲語(yǔ)句后。); 2.2.5 trycatch語(yǔ)句語(yǔ)句 Java異常處理異常處理42Java中的包(中的包(package)是用來(lái)把)是用
36、來(lái)把一組相關(guān)的一組相關(guān)的類(lèi)、接口放在一起類(lèi)、接口放在一起的組織結(jié)構(gòu)(集合),它是一個(gè)的組織結(jié)構(gòu)(集合),它是一個(gè)相對(duì)獨(dú)立的軟件單元,可以簡(jiǎn)單地理解為放置這些相對(duì)獨(dú)立的軟件單元,可以簡(jiǎn)單地理解為放置這些類(lèi)和接口的文件夾。類(lèi)和接口的文件夾。包體現(xiàn)了包體現(xiàn)了Java語(yǔ)言面向?qū)ο筇匦灾械姆庋b機(jī)制。語(yǔ)言面向?qū)ο筇匦灾械姆庋b機(jī)制。Java包就是具有一定相關(guān)性在文件系統(tǒng)中可準(zhǔn)確定包就是具有一定相關(guān)性在文件系統(tǒng)中可準(zhǔn)確定位的位的Java文件的集合。文件的集合。2.2.11-12 Java中包的概念與使用中包的概念與使用43JavaJava提供的用于語(yǔ)言開(kāi)發(fā)的類(lèi)庫(kù)及接口,提供的用于語(yǔ)言開(kāi)發(fā)的類(lèi)庫(kù)及接口,稱(chēng)為應(yīng)用
37、程序編程接口稱(chēng)為應(yīng)用程序編程接口APIAPI(Application Application Programming InterfaceProgramming Interface),分別放在不同),分別放在不同的包中。的包中。2.2.11-12 Java中包的概念與使用中包的概念與使用44java.langjava.lang 語(yǔ)言包語(yǔ)言包java.appletjava.appletAppletApplet應(yīng)用程序應(yīng)用程序java.awtjava.awt 抽象窗口工具包抽象窗口工具包java.iojava.io輸入輸出流的文件包輸入輸出流的文件包網(wǎng)絡(luò)功能網(wǎng)絡(luò)功能java.utiljava.uti
38、l 實(shí)用包實(shí)用包一一. Java的常用包的常用包2.2.11-12 Java中包的概念與使用中包的概念與使用45二二. . 包的引用包的引用在在JavaJava程序的開(kāi)頭添加程序的開(kāi)頭添加importimport語(yǔ)句語(yǔ)句, ,可指明源可指明源程序要使用含有該類(lèi)的包程序要使用含有該類(lèi)的包. .如如: import java.awt.Graphics;: import java.awt.Graphics; import java.applet. import java.applet.* *; ;注意注意:java.lang:java.lang包是系統(tǒng)自動(dòng)隱含導(dǎo)入的包是系統(tǒng)自動(dòng)隱含導(dǎo)入的, ,所所以
39、可以不使用以可以不使用importimport語(yǔ)句語(yǔ)句. .其他類(lèi)引用時(shí)一定其他類(lèi)引用時(shí)一定要使用要使用importimport語(yǔ)句導(dǎo)入該類(lèi)的包語(yǔ)句導(dǎo)入該類(lèi)的包. .2.2.11-12 Java中包的概念與使用中包的概念與使用462.2.11-12 Java中包的概念與使用中包的概念與使用 -(1)包聲明)包聲明l一、包由包語(yǔ)句一、包由包語(yǔ)句package創(chuàng)建:創(chuàng)建: package 自定義包名自定義包名1.包名包名2. 在在JavaJava程序中,程序中,packagepackage語(yǔ)句必須是程語(yǔ)句必須是程序的第一條非空格、非注釋語(yǔ)句。序的第一條非空格、非注釋語(yǔ)句。通過(guò)通過(guò)package語(yǔ)句
40、,可將語(yǔ)句,可將Java程序分層次地存放程序分層次地存放在不同的目錄下,目錄名稱(chēng)與包的名稱(chēng)相在不同的目錄下,目錄名稱(chēng)與包的名稱(chēng)相同。同。l關(guān)鍵字關(guān)鍵字packagepackage后是不同層次的后是不同層次的包名包名, ,各級(jí)包名之間用各級(jí)包名之間用“.”.”號(hào)分號(hào)分隔。通常情況下,包名稱(chēng)的元素隔。通常情況下,包名稱(chēng)的元素被整個(gè)地小寫(xiě)。被整個(gè)地小寫(xiě)。47 package 包名;包名;import 包名包名.類(lèi)名;類(lèi)名; /更多的更多的import語(yǔ)句,引入更多的類(lèi)語(yǔ)句,引入更多的類(lèi) public class 類(lèi)名類(lèi)名 int val= /變量定義語(yǔ)句變量定義語(yǔ)句public static voi
41、d main(String args )/方法定義方法定義/變量定義和控制語(yǔ)句構(gòu)成的方法體變量定義和控制語(yǔ)句構(gòu)成的方法體2.2.13 Java應(yīng)用程序的基本結(jié)構(gòu)應(yīng)用程序的基本結(jié)構(gòu) Java Java程序由類(lèi)和對(duì)象構(gòu)成,而程序由類(lèi)和對(duì)象構(gòu)成,而類(lèi)又由方法和變量構(gòu)成。類(lèi)又由方法和變量構(gòu)成。Java Java 的的方法由語(yǔ)句構(gòu)成,而語(yǔ)句又由標(biāo)識(shí)方法由語(yǔ)句構(gòu)成,而語(yǔ)句又由標(biāo)識(shí)符和運(yùn)算符構(gòu)成。符和運(yùn)算符構(gòu)成。482.3 Java程序?qū)嵗绦驅(qū)嵗?9使用對(duì)話(huà)框功能需引入相應(yīng)的類(lèi)使用對(duì)話(huà)框功能需引入相應(yīng)的類(lèi): : import javax.swing.JOptionPane import javax.swing.JOptionPane1 1使用使用showMessageDialogshowMessageDialog方法輸出信息方法輸出信息JavaJava中的中的JOptionPane.showMessageDialogJOptionPane.showMessageDialo
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒交通安全國(guó)旗下精彩講話(huà)稿范文(5篇)
- 感謝老師學(xué)生演講稿
- 小孩百日宴父母感謝致辭6篇
- 公眾平臺(tái)相關(guān)知識(shí)
- 銀星養(yǎng)腦片治療彌漫性軸索損傷瘀阻腦絡(luò)證的臨床研究
- 國(guó)家知識(shí)產(chǎn)權(quán)政策
- 電廠鍋爐補(bǔ)給水和凝結(jié)水處理工藝設(shè)計(jì)
- 初級(jí)會(huì)計(jì)經(jīng)濟(jì)法基礎(chǔ)-初級(jí)會(huì)計(jì)《經(jīng)濟(jì)法基礎(chǔ)》模擬試卷421
- 智研咨詢(xún)發(fā)布-2024年中國(guó)光儲(chǔ)一體化行業(yè)市場(chǎng)運(yùn)行態(tài)勢(shì)及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 水下機(jī)器人航跡跟蹤及容錯(cuò)控制方法研究
- 2022版藝術(shù)新課標(biāo)解讀心得(課件)小學(xué)美術(shù)
- 《中小學(xué)校園食品安全和膳食經(jīng)費(fèi)管理工作指引》專(zhuān)題知識(shí)培訓(xùn)
- 2024年新疆區(qū)公務(wù)員錄用考試《行測(cè)》真題及答案解析
- Profinet(S523-FANUC)發(fā)那科通訊設(shè)置
- 第三章-自然語(yǔ)言的處理(共152張課件)
- 醫(yī)學(xué)教程 常見(jiàn)化療藥物歸納
- 行政事業(yè)單位國(guó)有資產(chǎn)管理辦法
- 六年級(jí)口算訓(xùn)練每日100道
- 高一生物生物必修一全冊(cè)考試題帶答題紙答案
- 統(tǒng)編版九年級(jí)歷史下冊(cè)第一單元教案教學(xué)設(shè)計(jì)
- 人教部編版道德與法治八年級(jí)下冊(cè):6.3 《國(guó)家行政機(jī)關(guān)》說(shuō)課稿1
評(píng)論
0/150
提交評(píng)論