




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
JAVA語(yǔ)言程序設(shè)計(jì)2.1基礎(chǔ)知識(shí)2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式2.3控制流程本章小結(jié)第二章目錄教學(xué)目標(biāo):使用Java編寫程序,需要了解Java語(yǔ)言的基本知識(shí)。本章將主要介紹Java的數(shù)據(jù)類型、標(biāo)識(shí)符、關(guān)鍵字、變量與常量、表達(dá)式,以及Java程序的基本結(jié)構(gòu)。學(xué)習(xí)Java語(yǔ)言的基礎(chǔ)知識(shí),要有創(chuàng)新精神和工匠精神,能編寫出高效、易維護(hù)的代碼。教學(xué)重點(diǎn):掌握J(rèn)ava編程語(yǔ)言中4種基本數(shù)據(jù)類型:整型、浮點(diǎn)型、字符型、布爾型。了解Java編程語(yǔ)言中的引用數(shù)據(jù)類型。掌握程序的順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。第二章數(shù)據(jù)是程序的必要組成部分,是程序中被處理的對(duì)象,程序中所使用的每個(gè)數(shù)據(jù)都屬于某一種類型。在Java編程語(yǔ)言中,數(shù)據(jù)類型主要分為基本數(shù)據(jù)類型和引用數(shù)據(jù)類型兩大類。2.1基礎(chǔ)知識(shí)1.基本數(shù)據(jù)類型在Java編程語(yǔ)言中,基本數(shù)據(jù)類型即簡(jiǎn)單的值。基本數(shù)據(jù)類型根據(jù)數(shù)據(jù)值的不同,可以分為數(shù)值型和非數(shù)值型。數(shù)值型分為整型和浮點(diǎn)型,整型主要有byte型、short型、int型和long型,浮點(diǎn)型主要有float型和double型;非數(shù)值型主要有char型和boolean型。2.1基礎(chǔ)知識(shí)(1)整型在Java編程語(yǔ)言中,共有4種整型,并且所有的整型都是帶符號(hào)的。聲明每種不同的類型時(shí),可以使用關(guān)鍵字byte、short、int或long。2.1基礎(chǔ)知識(shí)byte型稱為字節(jié)型,數(shù)據(jù)在內(nèi)存中占用1個(gè)字節(jié),表示的存儲(chǔ)范圍為-27~27-1。short型稱為短整型,數(shù)據(jù)在內(nèi)存中占用2個(gè)字節(jié),表示的存儲(chǔ)范圍是-215~215-1。int型稱為整型,數(shù)據(jù)在內(nèi)存中占用4個(gè)字節(jié),表示的存儲(chǔ)范圍為-231~231-1,是整數(shù)的默認(rèn)類型。long型稱為長(zhǎng)整型,數(shù)據(jù)在內(nèi)存中占用8個(gè)字節(jié),表示的存儲(chǔ)范圍是-263~263-1,在數(shù)字后使用字母l或者L來(lái)表示,否則整數(shù)數(shù)值默認(rèn)是int型。例如,12L是long型的數(shù)據(jù),12是int型的數(shù)據(jù)。在Java編程語(yǔ)言中,大小寫L都可以使用,但是建議不要使用小寫的字母l,因?yàn)樗蛿?shù)字1很像。2.1基礎(chǔ)知識(shí)
Java中可以使用十進(jìn)制、八進(jìn)制和十六進(jìn)制這3種進(jìn)制來(lái)表示整數(shù)。十進(jìn)制:基數(shù)為10,逢10進(jìn)位。其由10個(gè)數(shù)字符號(hào)構(gòu)建而成,分別是數(shù)字0~9,如十進(jìn)制整數(shù)2039、1328等。八進(jìn)制:基數(shù)為8,逢8進(jìn)位。以數(shù)字0開頭的數(shù)字序列,由8個(gè)數(shù)字符號(hào)構(gòu)建而成,分別是數(shù)字0~7。例如,八進(jìn)制整數(shù)0545,代表十進(jìn)制整數(shù)357。十六進(jìn)制:基數(shù)為16,逢16進(jìn)位。以0X開頭的數(shù)字序列,由16個(gè)數(shù)字符號(hào)構(gòu)建而成,分別是0~9、A、B、C、D、E和F,其中前綴中的X和后綴中的字母A、B、C、D、E和F,是不區(qū)分大小寫的,這是Java中僅有的幾個(gè)不區(qū)分大小寫的地方。例如十六進(jìn)制整數(shù)0xA45FE,代表十進(jìn)制的整數(shù)673278。2.1基礎(chǔ)知識(shí)(2)浮點(diǎn)型浮點(diǎn)型使用關(guān)鍵字float或double聲明,用來(lái)表示數(shù)學(xué)中的實(shí)數(shù)2.1基礎(chǔ)知識(shí)float型稱為單精度浮點(diǎn)型,數(shù)據(jù)在內(nèi)存中占用4個(gè)字節(jié)。float型的數(shù)據(jù)值后面必須添加字母F或f,因?yàn)楦↑c(diǎn)數(shù)的缺省類型為double型,如“floati=2.15F;”或“floatj=6.24E3f;”等。double型稱為雙精度浮點(diǎn)型,數(shù)據(jù)在內(nèi)存中占用8個(gè)字節(jié)。double型的數(shù)據(jù)值后邊可以添加字母D或d,因?yàn)楦↑c(diǎn)數(shù)的缺省類型為double,如“doublei=3.05d;”或“doublej=6.24E+30D;”等。2.1基礎(chǔ)知識(shí)(3)字符型單個(gè)字符用char型表示。char型的數(shù)據(jù)在內(nèi)存中占用2個(gè)字節(jié)。char代表16位無(wú)符號(hào)的Unicode字符。char字符必須在單引號(hào)’’內(nèi),如“charc=’a’;”。2.1基礎(chǔ)知識(shí)(4)布爾型布爾型又稱邏輯類型,使用boolean關(guān)鍵字聲明。boolean型只有兩個(gè)值:true和false。表示兩個(gè)狀態(tài):開或關(guān)、真或假、是或不是。boolean型的值默認(rèn)為false。注意:與C語(yǔ)言不同,Java中的boolean型與整型之間不能轉(zhuǎn)換。2.1基礎(chǔ)知識(shí)2.基本數(shù)據(jù)類型間的轉(zhuǎn)換數(shù)值型的數(shù)據(jù)在進(jìn)行混和運(yùn)算的時(shí)候,需要將不同類型的數(shù)據(jù)先轉(zhuǎn)換成同一類型,再進(jìn)行運(yùn)算。Java中的基本數(shù)據(jù)類型的轉(zhuǎn)換分為兩種:自動(dòng)轉(zhuǎn)換和強(qiáng)制轉(zhuǎn)換。2.1基礎(chǔ)知識(shí)(1)自動(dòng)轉(zhuǎn)換橫向的箭頭表示運(yùn)算為不同數(shù)據(jù)類型時(shí)轉(zhuǎn)換的方向。例如:int型與double型的數(shù)據(jù)進(jìn)行運(yùn)算時(shí),需要先將int型的數(shù)據(jù)轉(zhuǎn)換成double型,然后在兩個(gè)同類型的數(shù)據(jù)間進(jìn)行運(yùn)算,結(jié)果為double型的數(shù)據(jù)。需要注意的是,箭頭方向只是表示數(shù)據(jù)類型級(jí)別的高低,由低向高轉(zhuǎn)換。2.1基礎(chǔ)知識(shí)當(dāng)一個(gè)較“小”的數(shù)據(jù)和一個(gè)較“大”的數(shù)據(jù)一起運(yùn)算的時(shí)候,系統(tǒng)將自動(dòng)將較“小”的數(shù)據(jù)轉(zhuǎn)換為較“大”的數(shù)據(jù),再進(jìn)行運(yùn)算。在方法調(diào)用過(guò)程中,如果實(shí)際參數(shù)較“小”,而函數(shù)的形參比較“大”的時(shí)候,除非有匹配的方法,否則會(huì)直接使用較“大”的形參函數(shù)進(jìn)行調(diào)用。2.1基礎(chǔ)知識(shí)(2)強(qiáng)制轉(zhuǎn)換將“大”的數(shù)據(jù)轉(zhuǎn)換為“小”的數(shù)據(jù)時(shí),可以使用強(qiáng)制轉(zhuǎn)換。在進(jìn)行強(qiáng)制轉(zhuǎn)換的時(shí)候,必須在要轉(zhuǎn)換的數(shù)據(jù)前面加上需要轉(zhuǎn)換的數(shù)據(jù)類型。進(jìn)行強(qiáng)制轉(zhuǎn)換的時(shí)候,有可能會(huì)出現(xiàn)精度損失。如果是進(jìn)行強(qiáng)制類型轉(zhuǎn)換,按照?qǐng)D2-2從高到低來(lái)使用。2.1基礎(chǔ)知識(shí)(3)轉(zhuǎn)換附加說(shuō)明當(dāng)兩種數(shù)據(jù)類型進(jìn)行自動(dòng)轉(zhuǎn)換的時(shí)候,需要滿足的條件是兩種數(shù)據(jù)類型是兼容的并且目的類型的數(shù)值范圍應(yīng)該比源轉(zhuǎn)換值的范圍要大。而拓展轉(zhuǎn)換就遵循圖2-2的自動(dòng)類型轉(zhuǎn)換。當(dāng)這兩個(gè)條件都滿足的時(shí)候,拓展轉(zhuǎn)換才會(huì)發(fā)生,而對(duì)于幾個(gè)基本數(shù)據(jù)類型的轉(zhuǎn)換過(guò)程,根據(jù)兼容性boolean型和char型應(yīng)該是獨(dú)立的,其他6種類型是可以兼容的,在強(qiáng)制轉(zhuǎn)換過(guò)程中,唯獨(dú)特殊的是char型和int型是可以轉(zhuǎn)換的,不過(guò)會(huì)使用char型的ASCII碼值。2.1基礎(chǔ)知識(shí)【例2-1】基本數(shù)據(jù)類型應(yīng)用2.1基礎(chǔ)知識(shí)publicclassExample2_1{//定義類
publicstaticvoidmain(String[]args){ //主方法 bytea=10;//定義不同的基本數(shù)據(jù)類型的變量,并賦初值shortb=20;intc=100;longd=82L;floati=3.2f;doublej=3.5;chark='n';booleanm=true;System.out.println("byte型的值a="+a);//輸出每個(gè)變量的值System.out.println("short型的值b="+b);System.out.println("int型的值c="+c);System.out.println("long型的值d="+d);System.out.println("float型的值i="+i);System.out.println("double型的值j="+j);System.out.println("char型的值k="+k);System.out.println("boolean型的值m="+m);}}3.引用數(shù)據(jù)類型引用數(shù)據(jù)類型即類類型,用來(lái)表示更為復(fù)雜的類型。引用數(shù)據(jù)類型包括用戶聲明的所有類型,習(xí)慣上用來(lái)創(chuàng)建對(duì)象。Java中除基本數(shù)據(jù)類型之外的所有數(shù)據(jù)類型都是引用數(shù)據(jù)類型,引用類型主要包括類、數(shù)組和接口,具體內(nèi)容將在第三章詳細(xì)介紹。2.1基礎(chǔ)知識(shí)2.2.1標(biāo)識(shí)符在Java中,標(biāo)識(shí)符用來(lái)命名變量、符號(hào)常量、數(shù)組、方法、類、對(duì)象、接口、包等。標(biāo)識(shí)符可以由字母、數(shù)字、_或$組成,第一個(gè)字符不能是數(shù)字,長(zhǎng)度不限。其中字母可以是大寫或小寫的英文字母,數(shù)字為0-9。標(biāo)識(shí)符中的字母要區(qū)分大小寫。為了提高程序的可讀性,標(biāo)識(shí)符最好“見名知義”,而且規(guī)范大小寫的使用方式。注意:所有的用戶自定義的標(biāo)識(shí)符名不要和系統(tǒng)的關(guān)鍵字(保留字)重名。2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式2.2.2關(guān)鍵字關(guān)鍵字又稱保留字,是Java規(guī)定的具有特定含義的標(biāo)識(shí)符,用戶只能按照系統(tǒng)規(guī)定的方式使用,不能自行定義。關(guān)鍵字一律用小寫字母表示。2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式2.2.3變量和常量1.變量變量代表內(nèi)存中具有特定屬性的一個(gè)存儲(chǔ)單元,它用來(lái)存放數(shù)據(jù),也就是變量的值。在程序運(yùn)行期間,這些值是可以改變的。一個(gè)變量有一個(gè)名稱,以便被引用。變量名應(yīng)該符合標(biāo)識(shí)符的命名規(guī)則,并且區(qū)分大小寫。每一個(gè)變量必須有一個(gè)數(shù)據(jù)類型。
2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式1.變量聲明變量方式:例如:inta;這里,a就代表一個(gè)整型的變量。不同類型的變量,內(nèi)存分配是不一樣的,且只能存儲(chǔ)對(duì)應(yīng)的數(shù)據(jù)類型。系統(tǒng)也是根據(jù)變量的數(shù)據(jù)類型來(lái)理解其中的數(shù)據(jù)的。2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式1.變量變量可以在聲明的時(shí)候進(jìn)行初始化,也可以利用一條賦值語(yǔ)句來(lái)進(jìn)行初始化。變量的值必須與它所聲明的數(shù)據(jù)類型相匹配。2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式2.常量在程序運(yùn)行的過(guò)程中,其值不能改變的量稱為常量。在Java中,在變量聲明的格式前面加上final關(guān)鍵字作為修飾符,就聲明了一個(gè)常量。例如:
MAXSIZE就代表一個(gè)整型的常量,它的值在程序運(yùn)行過(guò)程中始終為100,不允許改變。2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式2.2.4運(yùn)算符1.算術(shù)運(yùn)算符(1)+:加法運(yùn)算符,就是將兩個(gè)操作數(shù)進(jìn)行求和操作,且只能對(duì)數(shù)值型數(shù)據(jù)運(yùn)算。
一般形式:op1+op2
運(yùn)算符“+”也可以放在數(shù)值的前面,表示正數(shù)。例如:2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式1.算術(shù)運(yùn)算符(2)-:減法運(yùn)算符,將兩個(gè)操作數(shù)相減,只能對(duì)數(shù)值型數(shù)據(jù)進(jìn)行運(yùn)算。一般形式為:op1-op2
運(yùn)算符“-”也可以放在數(shù)值的前面,表示負(fù)數(shù)。例如:
2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式1.算術(shù)運(yùn)算符(3)*:乘法運(yùn)算符,就是對(duì)兩個(gè)操作數(shù)進(jìn)行乘法操作,只能對(duì)數(shù)值型數(shù)據(jù)進(jìn)行運(yùn)算。
一般形式為:op1*op22.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式1.算術(shù)運(yùn)算符(4)/:除法運(yùn)算符,就是對(duì)兩個(gè)操作數(shù)進(jìn)行除法操作,取得商值的整數(shù)部分。操作數(shù)的數(shù)據(jù)類型可以為整型、浮點(diǎn)型,也可以未負(fù)數(shù)。
一般形式為:op1/op22.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式1.算術(shù)運(yùn)算符(5)%:模運(yùn)算符,或稱為求余運(yùn)算符,將運(yùn)算符左邊的操作數(shù)除以運(yùn)算符右邊的操作數(shù),余數(shù)作為結(jié)果。操作數(shù)的數(shù)據(jù)類型可以是整型,也可以是浮點(diǎn)型。
一般形式為:op1%op22.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式1.算術(shù)運(yùn)算符(6)++:自增運(yùn)算符,表示完成自加1的運(yùn)算,只能作用于變量。它可以放在操作數(shù)的前面,也可以放在操作數(shù)的后面,但是作用不一樣。++運(yùn)算符放在操作數(shù)前面,表示該變量先自動(dòng)加1,再進(jìn)行其它操作。2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式1.算術(shù)運(yùn)算符++運(yùn)算符放在操作數(shù)后面,表示先進(jìn)行運(yùn)算,再執(zhí)行自動(dòng)加1操作。2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式1.算術(shù)運(yùn)算符(7)--:自減運(yùn)算符,表示完成自動(dòng)減1的運(yùn)算,只能作用于變量。它可以放在操作數(shù)的前面也可以放在操作數(shù)的后面,但是作用不一樣。--運(yùn)算符放在操作數(shù)前面,表示該變量先自減1,再進(jìn)行其它操作。2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式1.算術(shù)運(yùn)算符--運(yùn)算符放在操作數(shù)的后面,表示先進(jìn)行運(yùn)算,再進(jìn)行自動(dòng)減1操作。2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式2.賦值運(yùn)算符
賦值運(yùn)算符表示將一個(gè)值賦給一個(gè)變量,運(yùn)算順序從右到左。賦值運(yùn)算符包括=、+=、-=、*=、/=、%=。2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式2.賦值運(yùn)算符(1)=:賦值運(yùn)算符,表示將等號(hào)右邊表達(dá)式的值賦給等號(hào)左邊的變量。(2)+=:加等于,表示將等號(hào)左邊的變量值與等號(hào)右邊的值相加之后,再將結(jié)果賦給等號(hào)左邊的變量。
2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式2.賦值運(yùn)算符(3)-=:減等于,表示將等號(hào)左邊的變量值與等號(hào)右邊的值相減之后,再將結(jié)果賦給等號(hào)左邊的變量。
(4)*=:乘等于,表示將等號(hào)左邊的變量值與等號(hào)右邊的值相乘之后,再將結(jié)果賦給等號(hào)左邊的變量。2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式2.賦值運(yùn)算符(5)/=:除等于,表示將等號(hào)左邊的變量值與等號(hào)右邊的值相除之后,再將結(jié)果賦給等號(hào)左邊的變量。
(6)%=:模等于,表示將等號(hào)左邊的變量值與等號(hào)右邊的值求模之后,再將結(jié)果賦給等號(hào)左邊的變量。
2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式3.關(guān)系運(yùn)算符關(guān)系運(yùn)算符包括==、!=、>、<、>=、<=。關(guān)系運(yùn)算符的作用是比較運(yùn)算符兩邊的運(yùn)算數(shù),結(jié)果總是boolean類型的數(shù)據(jù),即true或false。2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式4.邏輯運(yùn)算符邏輯運(yùn)算符包括&&、||、!、^。邏輯運(yùn)算符用于對(duì)boolean型結(jié)果的表達(dá)式進(jìn)行運(yùn)算,運(yùn)算結(jié)果總是boolean型的數(shù)據(jù)。&&和||又被稱為短路邏輯運(yùn)算符,即由前一個(gè)操作數(shù)就能夠確定整個(gè)表達(dá)式值的時(shí)候,后一個(gè)操作數(shù)的表達(dá)式將不再執(zhí)行。2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式【例2-2】邏輯運(yùn)算符的應(yīng)用。2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式publicclassExample2_2{ publicstaticvoidmain(String[]args){ //主方法 inti=5;intj=10;booleanb=(i<6)&&(++j>10);
//i<6為真,則繼續(xù)判定++j>10是否為真System.out.println("boolean型b="+b);System.out.println("int型i="+i);System.out.println("int型j="+j);b=(i>6)&&(++j>10);
//i>6為假,表達(dá)式的值為假,短路,即++j>10不再執(zhí)行System.out.println("boolean型b="+b);System.out.println("int型i="+i);System.out.println("int型j="+j);b=(i<6)||(++j>10);
//i<6為真,表達(dá)式的值為真,短路,不再執(zhí)行++j>10System.out.println("boolean型b="+b);System.out.println("int型i="+i);System.out.println("int型j="+j);b=(i>6)||(++j>10);//i>6為假,表達(dá)式的值不確定,執(zhí)行++j>10System.out.println("boolean型b="+b);System.out.println("int型i="+i);System.out.println("int型j="+j);} }5.位運(yùn)算符位運(yùn)算符包括&、|、^、~、>>、>>>、<<。位運(yùn)算符是對(duì)兩個(gè)運(yùn)算數(shù)中的每個(gè)二進(jìn)制位都進(jìn)行運(yùn)算。2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式6.字符串連接運(yùn)算符字符串連接運(yùn)算可以使用“+”運(yùn)算符。他表示一個(gè)字符串類型的數(shù)據(jù)和任意數(shù)據(jù)類型的數(shù)據(jù)之間使用“+”運(yùn)算符,都將連接成一個(gè)新的字符串。
2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式7.條件運(yùn)算符“?:”運(yùn)算符是一個(gè)條件運(yùn)算符。
一般形式:(<邏輯表達(dá)式>)?<結(jié)果表達(dá)式1>:<結(jié)果表達(dá)式2>;
運(yùn)算規(guī)則:首先運(yùn)算邏輯表達(dá)式,若邏輯表達(dá)式的結(jié)果值為真,則返回<結(jié)果表達(dá)式1>的值,否則返回<結(jié)果表達(dá)式2>的值。
2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式運(yùn)算符可以利用1個(gè)、2個(gè)或3個(gè)操作數(shù)來(lái)完成一次完整的運(yùn)算,因此,運(yùn)算符可以按照所需操作數(shù)的個(gè)數(shù)分為一目運(yùn)算符、二目運(yùn)算符和三目運(yùn)算符。只有一個(gè)操作數(shù)的運(yùn)算符稱為一目運(yùn)算符,也稱為單目運(yùn)算符,如++、!等。運(yùn)算符兩側(cè)都需要操作數(shù)的運(yùn)算符稱為二目運(yùn)算符,如*、||等。三目運(yùn)算符就是能夠操作3個(gè)數(shù)的運(yùn)算符,例如?:。2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式2.2.5表達(dá)式表示某種意義的式子就稱為表達(dá)式,它是符合一定語(yǔ)法規(guī)則的、由運(yùn)算符和操作數(shù)組成的符號(hào)序列。一個(gè)常量或一個(gè)變量是最簡(jiǎn)單的表達(dá)式。表達(dá)式的值還可以用作其他運(yùn)算的操作數(shù),形成更復(fù)雜的表達(dá)式。運(yùn)算符的優(yōu)先級(jí)決定了同一表達(dá)式中多個(gè)運(yùn)算符被執(zhí)行的先后次序,如乘除運(yùn)算優(yōu)先于加減運(yùn)算,同一級(jí)里的運(yùn)算符具有相同的優(yōu)先級(jí),運(yùn)算符的結(jié)合性則決定了相同優(yōu)先級(jí)的運(yùn)算符的執(zhí)行順序。運(yùn)算符的優(yōu)先級(jí)和結(jié)合性如表2-7所示。2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式【例2-3】變量、運(yùn)算符、表達(dá)式應(yīng)用。求一個(gè)三位數(shù)的數(shù)字之和。2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式publicclassExample2_3{publicstaticvoidmain(Stringargs[]){intn=123,a=0,b=0,c=0,digsum=0;a=n%10;//個(gè)位b=(n%100)/10;//十位c=n/100;//百位digsum=a+b+c;//數(shù)字求和System.out.println("Digsum("+n+")="+digsum);}}2.2.6注釋與其它編程語(yǔ)言一樣,Java語(yǔ)言的源代碼中也允許出現(xiàn)注釋,并且注釋也不會(huì)影響程序的執(zhí)行,只是起到一個(gè)說(shuō)明的作用。在Java語(yǔ)言中,有3種不同功能的注釋,分別為單行注釋,區(qū)域注釋和文檔注釋。2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式1.單行注釋單行注釋用于為代碼中的單個(gè)行添加注釋,可以注釋掉單行代碼,也可以為一段代碼實(shí)現(xiàn)的功能添加一個(gè)簡(jiǎn)短的說(shuō)明。單行注釋是一種比較常用的注釋方式。語(yǔ)法格式:用“//”表示注釋的開始,注釋內(nèi)容從“//”開始到本行結(jié)尾。例如下面的代碼中使用了單行注釋。2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式2.區(qū)域注釋區(qū)域注釋又稱為多行注釋,用于一次性注釋一行或者多行。開發(fā)人員通常使用區(qū)域注釋描述文件、數(shù)據(jù)結(jié)構(gòu)、方法和文件說(shuō)明等。通常在文件的開頭和方法的前面或內(nèi)部使用區(qū)域注釋。要?jiǎng)?chuàng)建區(qū)域注釋,需要在注釋的開頭添加”/*”,在注釋的末尾添加”*/”,此方法允許創(chuàng)建很長(zhǎng)的注釋,而不需要在每一行的開頭都添加”//”。例如:2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式區(qū)域注釋在編譯時(shí)“/*”與“*/”之間的內(nèi)容都會(huì)被忽略。讀者可以根據(jù)自己的習(xí)慣選擇使用單行注釋和區(qū)域注釋。但是在使用區(qū)域注釋的時(shí)候,需要注意,“/*”“*/”在Java中不能嵌套使用,如果注釋內(nèi)容中本身已經(jīng)包含了一個(gè)“*/”,就不能使用區(qū)域注釋了。因?yàn)榫幾g器遇到“*/”會(huì)認(rèn)為一個(gè)多行注釋結(jié)束,這可能會(huì)引起錯(cuò)誤。因此,這時(shí)候只能用單行注釋的方法來(lái)解決。2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式3.文檔注釋文檔注釋用于描述Java的類、接口、構(gòu)造器、方法等。文檔注釋是Java獨(dú)有的,并可以通過(guò)javadoc工具轉(zhuǎn)換成HTML文件,每個(gè)文檔注釋都被放在注釋定界符“/**”和“*/”之中,一個(gè)注釋對(duì)應(yīng)一個(gè)類、成員或接口。該注釋應(yīng)該位于聲明之前。下面舉例說(shuō)明文檔注釋的使用。2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式【例2-4】文檔注釋的使用。2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式/***@authorshibing*@versionjdk1.6*/publicclassExample2_4{//定義類publicstaticvoidmain(Stringargs[]){//主方法System.out.println("helloWorld!");}/***setVAlue()是一個(gè)無(wú)參的普通方法*/publicvoidsetVAlue(){}}如果使用javadoc-ddocExample2_4.java來(lái)編譯執(zhí)行,則Java自動(dòng)執(zhí)行過(guò)程如左圖。并在當(dāng)前目錄下,生成名字為doc文件夾,同時(shí)將上述生成的文檔放入文件夾中。文件夾的內(nèi)容如右圖。2.2標(biāo)識(shí)符、關(guān)鍵字和表達(dá)式結(jié)構(gòu)化的流程控制有三種結(jié)構(gòu):順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)2.3流程控制2.3.1順序結(jié)構(gòu)【例2-5】程序的順序執(zhí)行。2.3流程控制publicclassExample2_5{publicstaticvoidmain(Stringargs[]){inta=5;System.out.println("a="+a);intb=a;System.out.println("b="+b);booleanflag=true;System.out.println("flag="+flag);intc=a+b;System.out.println("c="+c);System.out.println("主方法結(jié)束。");}}2.3.2選擇結(jié)構(gòu)1.if語(yǔ)句(1)if(布爾表達(dá)式){
語(yǔ)句塊s1;
}說(shuō)明:當(dāng)布爾表達(dá)式的值為true時(shí),執(zhí)行語(yǔ)句塊s1;否則跳過(guò)語(yǔ)句塊s1,程序繼續(xù)執(zhí)行。2.3流程控制【例2-6】if語(yǔ)句的使用。2.3流程控制 publicclassExample2_6{ publicstaticvoidmain(Stringargs[]){ inta=5; if(a>10){ System.out.println("a的值比10大,執(zhí)行if語(yǔ)句");} if(a<=10){ System.out.println("a的值比10小,執(zhí)行if語(yǔ)句");} System.out.println("主方法結(jié)束。"); } }(2)if(布爾表達(dá)式)
{語(yǔ)句塊s1;}
else
{語(yǔ)句塊s2;}說(shuō)明:當(dāng)布爾表達(dá)式的值為true時(shí),執(zhí)行語(yǔ)句塊s1;否則跳過(guò)語(yǔ)句塊s1,執(zhí)行語(yǔ)句塊s2。2.3流程控制【例2-7】if-else語(yǔ)句的使用。2.3流程控制publicclassExample2_7{ publicstaticvoidmain(Stringargs[]){ inta=5; if(a>10){ System.out.println("a的值比10大,執(zhí)行if語(yǔ)句");} else{System.out.println("a的值比10小,執(zhí)行else語(yǔ)句");} System.out.println("主方法結(jié)束。"); }}(3)if(布爾表達(dá)式1)
{語(yǔ)句塊s1;}
elseif(布爾表達(dá)式2)
{語(yǔ)句塊s2;}說(shuō)明:當(dāng)布爾表達(dá)式1的值為true時(shí),執(zhí)行語(yǔ)句塊s1;否則跳過(guò)語(yǔ)句塊s1,檢查布爾表達(dá)式2的值,若其值為真,則執(zhí)行語(yǔ)句塊s2。2.3流程控制【例2-8】if-elseif語(yǔ)句的使用。2.3流程控制publicclassExample2_8{ publicstaticvoidmain(Stringargs[]){ inta=5; if(a>10){ System.out.println("a的值比10大,執(zhí)行if語(yǔ)句");} elseif(a<6) { System.out.println("a的值比6小,執(zhí)行elseif語(yǔ)句");} System.out.println("主方法結(jié)束。"); }}(4)if(布爾表達(dá)式1)
{語(yǔ)句塊s1;}
elseif(布爾表達(dá)式2)
{語(yǔ)句塊s2;}
else{語(yǔ)句塊s3;}說(shuō)明:當(dāng)布爾表達(dá)式1的值為true時(shí),執(zhí)行語(yǔ)句塊s1;否則跳過(guò)語(yǔ)句s1,檢查布爾表達(dá)式2的值,若其值為真,則執(zhí)行語(yǔ)句塊s2,若其值為假,則執(zhí)行else后邊的語(yǔ)句塊s3。2.3流程控制【例2-9】if-elseif-else語(yǔ)句的使用。2.3流程控制publicclassExample2_9{ publicstaticvoidmain(Stringargs[]){ inta=5; if(a>10){ System.out.println("a的值比10大,執(zhí)行if語(yǔ)句");} elseif(a<6){ System.out.println("a的值比6小,執(zhí)行elseif語(yǔ)句");} else{ System.out.println("a的值在6-10之間,執(zhí)行else語(yǔ)句");} System.out.println("主方法結(jié)束。"); }}2.switch語(yǔ)句switch語(yǔ)句(又稱開關(guān)語(yǔ)句)和case語(yǔ)句一起使用,是多分支語(yǔ)句的一種。一般格式如下:2.3流程控制說(shuō)明:(1)在JDK6及JDK6之前的版本,表達(dá)式的值只能為short、int、byte、char型中的一種,在JDK7及JDK7之后的版本,除以上4種數(shù)據(jù)類型之外,也允許使用String型。(2)case子句中的判斷值必須是常量,而且所有case子句中的判斷值是不同的。(3)default子句是任選的,當(dāng)表達(dá)式的值與任意一條case子句中的值都不匹配時(shí),程序執(zhí)行default后面的語(yǔ)句。default語(yǔ)句的位置可以與case語(yǔ)句調(diào)換。(4)若表達(dá)式的值與任意一條case子句中的值都不匹配,且沒有default子句,則程序直接跳出switch語(yǔ)句。2.3流程控制(5)case分支中的語(yǔ)句塊包括多個(gè)執(zhí)行語(yǔ)句時(shí),可以不用花括號(hào)“{}”括起來(lái)。(6)switch語(yǔ)句的功能可以用嵌套if語(yǔ)句實(shí)現(xiàn),但使用switch語(yǔ)句更簡(jiǎn)煉,可讀性強(qiáng),執(zhí)行效率高。(7)switch語(yǔ)句一般要與break語(yǔ)句相結(jié)合,才能正確實(shí)現(xiàn)多分支。break語(yǔ)句用來(lái)在執(zhí)行完一個(gè)case分支后,使程序跳出switch語(yǔ),即終止switch語(yǔ)句的執(zhí)行。case子句只是起到一個(gè)標(biāo)號(hào)的作用,用來(lái)查找匹配的入口,從此處開始執(zhí)行。如果沒有break語(yǔ)句,則對(duì)后面的case子句不再進(jìn)行匹配,而是直接執(zhí)行其后的語(yǔ)句序列。因此,在每個(gè)case分支后,要用break語(yǔ)句來(lái)終止后面的case子句的執(zhí)行。但是在一些特殊情況下,想讓多個(gè)不同的case值都執(zhí)行同一個(gè)操作,此時(shí),可以省略某些case子句后面的break語(yǔ)句來(lái)達(dá)到效果。2.3流程控制【例2-10】switch—case語(yǔ)句的使用。輸入一個(gè)成績(jī),輸出該成績(jī)所屬的等級(jí)(0~59為“fail”,60~79為“pass”,80~89為“good”,90~100為“Excellent”)。2.3流程控制publicclassExample2_10{ publicstaticvoidmain(Stringargs[]){ intscore=78;score=score/10; switch(score){ case0: case1: case2: case3: case4: case5:System.out.println("fail");break; case6: case7:System.out.println("pass");break; case8:System.out.println("good");break; case9: case10:System.out.println("Excellent");break; default:System.out.println("DataError!"); } }}2.3.3循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)是程序中一種重要的基本結(jié)構(gòu)。它是在循環(huán)條件滿足的情況下,反復(fù)執(zhí)行某段程序,被反復(fù)執(zhí)行的這段程序稱為“循環(huán)體”。while循環(huán)do…while循環(huán)for循環(huán)2.3流程控制1.while語(yǔ)句while語(yǔ)句格式如下:說(shuō)明:(1)while語(yǔ)句的執(zhí)行過(guò)程:①求解條件表達(dá)式,如果其值為true,轉(zhuǎn)向②;否則轉(zhuǎn)向③;②執(zhí)行循環(huán)體語(yǔ)句組,然后轉(zhuǎn)向步驟①;③執(zhí)行while語(yǔ)句后面的語(yǔ)句。(2)while語(yǔ)句兩個(gè)注意事項(xiàng):①在進(jìn)入循環(huán)體之前,必須給相關(guān)的循環(huán)控制變量賦初值,以保證循環(huán)控制表達(dá)式中的變量有確定的值;②在循環(huán)體內(nèi)必須要有修改循環(huán)控制變量值的語(yǔ)句,以保證循環(huán)達(dá)到結(jié)束條件,正常退出循環(huán),避免產(chǎn)生死循環(huán)。2.3流程控制【例2-11】while語(yǔ)句的使用。求從1加到100的和,即1+2+…+100。2.3流程控制publicclassExample2_11{ publicstaticvoidmain(String[]args){ inti=0; intsum=0; while(i<=100){ sum=sum+i;i++;} System.out.println("1+2+…+100="+sum);}}2.do-while語(yǔ)句do-while語(yǔ)句格式如下:說(shuō)明:
與while語(yǔ)句的不同在于:do-while語(yǔ)句是先執(zhí)行一遍循環(huán)體中的語(yǔ)句,再判斷while后的條件表達(dá)式是否為真。若條件表達(dá)式為真,則繼續(xù)執(zhí)行循環(huán);若條件表達(dá)式為假,則終止循環(huán)。do-while循環(huán)至少要執(zhí)行一次循環(huán)體語(yǔ)句。需要注意的是,條件表達(dá)式后一定要有分號(hào)。2.3流程控制【例2-12】do---while語(yǔ)句的使用。求從1加到100的和,即1+2+…+100。2.3流程控制publicclassExample2_12{ publicstaticvoidmain(String[]args){ inti=0; intsum=0; do{ sum=sum+i; i++; } while(i<=100);//while后面要加上分號(hào); System.out.println("1+2+…+100="+sum);}}3.for語(yǔ)句for語(yǔ)句格式如下:說(shuō)明:(1)for語(yǔ)句的執(zhí)行過(guò)程:①先執(zhí)行表達(dá)式1,表達(dá)式1只執(zhí)行一次,一般都是賦值語(yǔ)句,用于
初始化變量;②再執(zhí)行表達(dá)式2,若結(jié)果值為假,則結(jié)束循環(huán);若結(jié)果值為真,則執(zhí)行步驟③;③執(zhí)行循環(huán)體,執(zhí)行表達(dá)式3;④轉(zhuǎn)回步驟②。2.3流程控制(2)for語(yǔ)句的幾個(gè)注意事項(xiàng):①表達(dá)式1常用于聲明循環(huán)變量、對(duì)一組變量進(jìn)行初始化或賦值,該語(yǔ)句在第一次循環(huán)開始前被執(zhí)行,且只被執(zhí)行一次,可以是用逗號(hào)隔開的多個(gè)賦值表達(dá)式。例如:2.3流程控制②表達(dá)式2用于控制循環(huán)的條件,相當(dāng)于while語(yǔ)句中的條件表達(dá)式,在每次循環(huán)的開始前被執(zhí)行(首次循環(huán)時(shí),首先執(zhí)行表達(dá)式1,再執(zhí)行表達(dá)式2),若其值為真,則執(zhí)行循環(huán)體;否則,跳出循環(huán)。若在第一次執(zhí)行該表達(dá)式時(shí)其值為假,則循環(huán)體將一次也不執(zhí)行。③表達(dá)式3在每次執(zhí)行循環(huán)體后被執(zhí)行,主要用于修改循環(huán)變量,從而使表達(dá)式2的值有可能發(fā)生改變,否則將陷入死循環(huán)。2.3流程控制【例2-13】for語(yǔ)句的使用。求從1加到100的和,即1+2+…+100。2.3流程控制publicclassExample2_13{ publicstaticvoidmain(Stringargs[]){ inti,n=100; intsum=0; for(i=1;i<=n;i++){ sum=sum+i; } System.out.println("Sum=1+2+...+100="+sum); }}【例2-14】for語(yǔ)句的使用。求從1加到100的和,即求1+2+…+100,并且逆序輸出從100到1的和,即求100+99+98+…+2+1。2.3流程控制publicclassExample2_14{ publicstaticvoidmain(Stringargs[]){ inti,n=100; intsum=0; for(i=1;i<=n;i++){sum=sum+i;} System.out.println("\nSum=1+2+...+100="+sum); sum=0; System.out.print("Sum="); for(i=n;i>1;i--){ sum=sum+i; System.out.print(i+"+"); } System.out.println(i+"="+(sum+i)); }}【例2-15】for語(yǔ)句的使用。求1-100之間的所有素?cái)?shù)。2.3流程控制publicclassExample2_15{ publicstaticvoidmain(S
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 景觀設(shè)計(jì)與城市更新-全面剖析
- 小學(xué)三年級(jí)數(shù)學(xué)因數(shù)中間或末尾有零的乘法質(zhì)量自測(cè)模擬題帶答案
- 兩位數(shù)乘兩位數(shù)筆算競(jìng)賽自測(cè)口算題
- 電網(wǎng)穩(wěn)定性增強(qiáng)-全面剖析
- 呼叫中心業(yè)務(wù)外包服務(wù)協(xié)議模板
- 計(jì)算機(jī)及網(wǎng)絡(luò)培訓(xùn)AI應(yīng)用行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 在線貸款審批系統(tǒng)行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 網(wǎng)絡(luò)證券工具行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 賽事紀(jì)念品店行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 長(zhǎng)詩(shī)保護(hù)在線平臺(tái)企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- GB/T 13452.2-2008色漆和清漆漆膜厚度的測(cè)定
- 2023年中國(guó)工商銀行天津分行校園招聘考試錄用公告
- 送達(dá)地址確認(rèn)書(訴訟類范本)
- 班組工程量結(jié)算書
- 生產(chǎn)件批準(zhǔn)申請(qǐng)書
- 環(huán)境監(jiān)測(cè)考試知識(shí)點(diǎn)總結(jié)
- 爵士音樂 完整版課件
- 嘉興華雯化工 - 201604
- 冀教版七年級(jí)下冊(cè)數(shù)學(xué)課件 第8章 8.2.1 冪的乘方
- XX公司“十四五”戰(zhàn)略發(fā)展規(guī)劃及年度評(píng)價(jià)報(bào)告(模板)
- 計(jì)算機(jī)輔助設(shè)計(jì)(Protel平臺(tái))繪圖員級(jí)試卷1
評(píng)論
0/150
提交評(píng)論