第2章-Java語(yǔ)言基礎(chǔ)語(yǔ)法_第1頁(yè)
第2章-Java語(yǔ)言基礎(chǔ)語(yǔ)法_第2頁(yè)
第2章-Java語(yǔ)言基礎(chǔ)語(yǔ)法_第3頁(yè)
第2章-Java語(yǔ)言基礎(chǔ)語(yǔ)法_第4頁(yè)
第2章-Java語(yǔ)言基礎(chǔ)語(yǔ)法_第5頁(yè)
已閱讀5頁(yè),還剩109頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

人民郵電出版社2Java語(yǔ)言基礎(chǔ)語(yǔ)法Java程序設(shè)計(jì)第章2.2輸入輸出2.3流程控制2.4數(shù)組2.1數(shù)據(jù)類(lèi)型和運(yùn)算符號(hào)2.5小結(jié)C目錄ONTENTS2.1.1Java數(shù)據(jù)類(lèi)型在計(jì)算機(jī)中存儲(chǔ)和處理數(shù)據(jù)要區(qū)分類(lèi)型,因?yàn)椴煌?lèi)型的數(shù)據(jù)在計(jì)算機(jī)中的存儲(chǔ)和處理方式不同。Java語(yǔ)言本身定義的數(shù)據(jù)類(lèi)型稱(chēng)為基本數(shù)據(jù)類(lèi)型。在基本數(shù)據(jù)類(lèi)型的基礎(chǔ)上,還可以定義其它數(shù)據(jù)類(lèi)型,稱(chēng)為自定義類(lèi)型,如后面講到的類(lèi)、接口和枚舉等。Java基本數(shù)據(jù)類(lèi)型可以分為4個(gè)類(lèi)型,即整型數(shù)、實(shí)型數(shù)(浮點(diǎn)數(shù))、布爾型數(shù)和字符型數(shù)。2.1.1Java數(shù)據(jù)類(lèi)型根據(jù)數(shù)據(jù)占據(jù)的內(nèi)存空間的大小、數(shù)據(jù)的表示范圍和數(shù)據(jù)的表示精度,可以將整型數(shù)和實(shí)型數(shù)分為byte(字節(jié)整型)、short(短整型)、int(基本整型)、long(長(zhǎng)整型)、float(單精度實(shí)型)、double(雙精度實(shí)型)。布爾型數(shù)用boolean表示,字符型用char表示。2.1.1Java數(shù)據(jù)類(lèi)型1、整型數(shù)沒(méi)有小數(shù)部分的數(shù)值型數(shù)就是整型數(shù)。(1)字節(jié)整型數(shù)byte用一個(gè)字節(jié)(8個(gè)二進(jìn)制數(shù))表示整型數(shù),所以一個(gè)字節(jié)型數(shù)表示數(shù)的范圍是:-128~127。(2)短整型short用兩個(gè)字節(jié)(16個(gè)二進(jìn)制數(shù))表示整型數(shù),一個(gè)短整數(shù)表示數(shù)的范圍是:-32768~32767。2.1.1Java數(shù)據(jù)類(lèi)型1、整型數(shù)(3)基本整型int用4個(gè)字節(jié)(32個(gè)二進(jìn)制數(shù))表示整型數(shù),一個(gè)基本整型數(shù)表示數(shù)的范圍是:-231~231-1。(4)長(zhǎng)整型long用8個(gè)字節(jié)(64個(gè)二進(jìn)制數(shù))表示長(zhǎng)整型數(shù),一個(gè)長(zhǎng)整型數(shù)表示數(shù)的范圍是:-263~263-1

。2.1.1Java數(shù)據(jù)類(lèi)型給定一個(gè)整型數(shù),則它的默認(rèn)類(lèi)型是基本整型,如123、-456都是基本整型數(shù)。如果想使一個(gè)整數(shù)表示的是長(zhǎng)整型數(shù),則可以在整型數(shù)后加L或l,如123L、-456l是長(zhǎng)整型數(shù)而不是基本整型數(shù)。沒(méi)有單獨(dú)表示字節(jié)型數(shù)和短整數(shù)的方法。在定義變量時(shí),如果給變量賦的值不超過(guò)相應(yīng)類(lèi)型的范圍,則該數(shù)就是相應(yīng)的類(lèi)型。如:byteb=123;//字節(jié)型變量b的初值是123shorts=12345;//短整型變量s的初值是123452.1.1Java數(shù)據(jù)類(lèi)型用八進(jìn)制表示時(shí),使用數(shù)字0~7,并且以0(數(shù)字0)開(kāi)頭。如:0123、0447都是八進(jìn)制數(shù),而0789則是非法數(shù)據(jù)。用十六進(jìn)制表示時(shí),使用數(shù)字0~9、字母a~f和字母A~F表示,并且以0x或0X(數(shù)字0,大寫(xiě)或小寫(xiě)X)開(kāi)頭。如:0x123、0x45fa、0x97AE等都十六進(jìn)制數(shù)。用二進(jìn)制表示時(shí),只使用數(shù)0和1,并且以以0b或0B(數(shù)字0)開(kāi)頭。如:0b1101、0B010011整型數(shù)還可以用八進(jìn)制、十六進(jìn)制和二進(jìn)制的形式表示。2.1.1Java數(shù)據(jù)類(lèi)型2、浮點(diǎn)數(shù)帶有小數(shù)點(diǎn)的數(shù)值數(shù)就是浮點(diǎn)數(shù)。如:123.、123.0、123.45都是浮點(diǎn)數(shù)。浮點(diǎn)數(shù)根據(jù)其所表示數(shù)的精度可以將浮點(diǎn)數(shù)分為單精度數(shù)和雙精度數(shù)。給定一個(gè)浮點(diǎn)數(shù),則默認(rèn)為該數(shù)是雙精度度數(shù),如123.0是一個(gè)雙精度數(shù)。如果想明確地說(shuō)明一個(gè)數(shù)是雙精度數(shù),可以在數(shù)據(jù)的后面加D或d。如:123.0d、-456.78D都是雙精度數(shù)。2.1.1Java數(shù)據(jù)類(lèi)型如果在一個(gè)浮點(diǎn)數(shù)后面加F或f,明確地表示該數(shù)是一個(gè)單精度數(shù)。如:123.0f、-456.78F是單精度數(shù)而不是雙精度數(shù)。浮點(diǎn)數(shù)可以用指數(shù)形式表示。如:123.45e3、-1.25E-5F、12.456e1D123.45e3表示123.45*103。使用指數(shù)形式表示浮點(diǎn)數(shù)時(shí),e或E的前面必須有數(shù)字,其后面必須是一個(gè)整型數(shù)。如:12.3e、12.3e2.5、e-3等不是合法的指數(shù)形式的浮點(diǎn)數(shù)。2.1.1Java數(shù)據(jù)類(lèi)型3.布爾型數(shù)boolean布爾型數(shù)是邏輯值,用于表示“真”和“假”。布爾型數(shù)的值用true和false表示。true表示“真”,false表示“假”。2.1.1Java數(shù)據(jù)類(lèi)型4.字符型數(shù)char用單引號(hào)引起的單個(gè)字符就是字符型數(shù)。如:‘a(chǎn)’、’X’、’d’、’2’、’8’、’中’、’國(guó)’等都是字符型數(shù)。在Java中,任何一個(gè)字符型數(shù)都是Unicode字符集中的字符。2.1.1Java數(shù)據(jù)類(lèi)型在編寫(xiě)程序時(shí),有些特殊字符無(wú)法在程序中輸入,這時(shí)可以用轉(zhuǎn)義字符來(lái)表示。轉(zhuǎn)義字符是字符’\’和個(gè)別字符組合而形成的字符,組合之后的字符表示的是其它字符。轉(zhuǎn)義字符及含義如表2-1所示。轉(zhuǎn)義字符含義轉(zhuǎn)義字符含義\a響玲Bell\’單引號(hào)\b退格鍵Backspace\\字符’\’\f換頁(yè)formfeed\”雙引號(hào)\n換行l(wèi)inefeed\u0000空字符‘’\r回車(chē)carriagereturn\ddd三個(gè)八進(jìn)制數(shù)表示的轉(zhuǎn)義字符\t制表鍵Tab\udddd四個(gè)十六進(jìn)制數(shù)表示的轉(zhuǎn)義字符表2-1轉(zhuǎn)義字符及含義2.1.1Java數(shù)據(jù)類(lèi)型5.字符串型數(shù)字符串是用雙引號(hào)引起的若干字符序列。如:“Math”、”ThisisaJavaprogram.””China”、”123”、”Beijing”等都是字符串。字符串中可以包括轉(zhuǎn)義字符。字符串不是基本類(lèi)型的數(shù)據(jù),但是通常情況下都當(dāng)作是基本數(shù)據(jù)類(lèi)型的數(shù)據(jù)使用。具體表示字符串時(shí)是用String類(lèi)(相關(guān)內(nèi)容參見(jiàn)7.2)的對(duì)象來(lái)表示。【例2.1】轉(zhuǎn)義字符及字符串的使用。Example2_01.java2.1.1Java數(shù)據(jù)類(lèi)型6.數(shù)據(jù)分隔符如果數(shù)據(jù)比較大或數(shù)據(jù)的位數(shù)比較多,則該數(shù)的可讀性變差,這時(shí)可以用“_”對(duì)數(shù)據(jù)進(jìn)行分隔以增加數(shù)據(jù)的可讀性。如:longcreditCardNumber=1234_5678_9012_3456L;longsocialSecurityNumber=999_99_9999L;floatpi=3.14_15F;longhexBytes=0xFF_EC_DE_5E;longhexWords=0xCAFE_BABE;2.1.1Java數(shù)據(jù)類(lèi)型6.數(shù)據(jù)分隔符longmaxLong=0x7fff_ffff_ffff_ffffL;bytenybbles=0b0010_0101;longbytes=0b11010010_01101001_10010100_10010010;intx3=5_______2;//多個(gè)連續(xù)的分隔符2.1.1Java數(shù)據(jù)類(lèi)型6.數(shù)據(jù)分隔符分隔符“_”只能用于數(shù)字之間,只要有需要就可以使用。但下列情況不可以使用分隔符:數(shù)據(jù)的開(kāi)始和結(jié)束處不許使用分隔符浮點(diǎn)數(shù)的小數(shù)點(diǎn)旁不允許使用分隔符在數(shù)據(jù)的前綴或后綴(

如F或

L)之前或之后不許使用分隔符字符串中使用“_”當(dāng)作普通字符2.1.1Java數(shù)據(jù)類(lèi)型6.數(shù)據(jù)分隔符如:floatpi1=3_.1415F;floatpi2=3._1415F;longsocialSecurityNumber1=999_99_9999_L;intx2=52_;intx4=0_x52;intx5=0x_52;intx7=0x52_;等都是對(duì)“_”的不正確使用。2.1.1Java數(shù)據(jù)類(lèi)型一般地,字節(jié)數(shù)多的數(shù)有較高的精度,字節(jié)數(shù)少的數(shù)的精度較低。

所以,基本數(shù)據(jù)類(lèi)型中數(shù)值型數(shù)據(jù)按精度從低到高的次序?yàn)椋篵yte→short→char→int→long→float→double當(dāng)不同類(lèi)型的數(shù)據(jù)進(jìn)行混合運(yùn)算時(shí),低精度數(shù)先轉(zhuǎn)換成高精度數(shù)再與高精度數(shù)進(jìn)行運(yùn)算,最后得到的數(shù)據(jù)的類(lèi)型是高精度類(lèi)型。7.基本數(shù)據(jù)類(lèi)型數(shù)據(jù)的優(yōu)先次序2.1.2標(biāo)識(shí)符與關(guān)鍵字在一個(gè)Java程序中,可能有若干個(gè)變量、類(lèi)、對(duì)象和接口等元素。為了區(qū)別不同元素,需要給每一個(gè)元素一個(gè)惟一的名字,以便與其它元素相區(qū)分并標(biāo)識(shí)本身元素。標(biāo)識(shí)符和關(guān)鍵字都是元素的名字。在程序中用于標(biāo)識(shí)變量、類(lèi)、對(duì)象和接口等元素的名字稱(chēng)為標(biāo)識(shí)符。

如:inti;classStudent{//…}i是一個(gè)標(biāo)識(shí)符,它表示一個(gè)整型變量;Student也是一個(gè)標(biāo)識(shí)符,它表示一個(gè)類(lèi)的類(lèi)名。1.標(biāo)識(shí)符2.1.2標(biāo)識(shí)符與關(guān)鍵字關(guān)鍵字也是標(biāo)識(shí)符,但是關(guān)鍵字是由Java語(yǔ)言定義的、程序員不可以再

重新定義使用的標(biāo)識(shí)符。如上面的int、class都是關(guān)鍵字,不能把它們?cè)僦匦?/p>

定義。一般地,標(biāo)識(shí)符指的是用戶(hù)自定義的名字,關(guān)鍵字是Java語(yǔ)言定義的

名字。2.關(guān)鍵字3.變量變量在使用前必須先定義。變量定義的形式:數(shù)據(jù)類(lèi)型變量列表;如:inta,b;inti,j;變量在參與運(yùn)算前必須有確定的值,可以通過(guò)賦值運(yùn)算(“=”)把確定的數(shù)據(jù)賦給變量。如上面定義的變量:a=123;變量在定義時(shí)可以給變量賦初值,稱(chēng)為變量初始化。變量初始化的語(yǔ)法形式:數(shù)據(jù)類(lèi)型變量1=初始1,變量2=初值2,…,變量n=初值n;2.1.2標(biāo)識(shí)符與關(guān)鍵字3.變量如:inta=10,b=-35;變量的類(lèi)型決定了它所保留的值的類(lèi)型。如:doubled=123;賦值時(shí)不能將一個(gè)高精度的數(shù)據(jù)賦給一個(gè)低精度的變量。如:a=123.45;把一個(gè)低精度的數(shù)據(jù)賦給一個(gè)高精度的變量是可以的。2.1.2標(biāo)識(shí)符與關(guān)鍵字4.數(shù)據(jù)類(lèi)型轉(zhuǎn)換不同類(lèi)型的數(shù)據(jù)是不能運(yùn)算的。為了能夠?qū)崿F(xiàn)不同類(lèi)型數(shù)據(jù)的運(yùn)算,在運(yùn)算前需要先將數(shù)據(jù)轉(zhuǎn)換成同一類(lèi)型后再進(jìn)行運(yùn)算。數(shù)據(jù)類(lèi)型轉(zhuǎn)換的基本原則是將低精度的數(shù)據(jù)轉(zhuǎn)換成高精度的數(shù)據(jù)(可以避免數(shù)據(jù)的丟失)。數(shù)據(jù)類(lèi)型轉(zhuǎn)換又可以分為自動(dòng)類(lèi)型轉(zhuǎn)換和強(qiáng)制類(lèi)型轉(zhuǎn)換。2.1.2標(biāo)識(shí)符與關(guān)鍵字(1)自動(dòng)類(lèi)型轉(zhuǎn)換Java編譯器能根據(jù)參與運(yùn)算的數(shù)據(jù)的數(shù)據(jù)類(lèi)型自動(dòng)地將一些數(shù)據(jù)轉(zhuǎn)換為其它類(lèi)型。如:doubled=123;”再如下面的運(yùn)算:123+’a’+2*150.0(2)強(qiáng)制類(lèi)型轉(zhuǎn)換上面的語(yǔ)句:inta=123.45;編譯不能通過(guò)。如果將該語(yǔ)句改成:a=(int)123.45;其中的運(yùn)算“(int)123.45”是一個(gè)強(qiáng)制類(lèi)型轉(zhuǎn)換表達(dá)式。強(qiáng)制類(lèi)型轉(zhuǎn)換的語(yǔ)法形式:(數(shù)據(jù)類(lèi)型)(表達(dá)式)或(數(shù)據(jù)類(lèi)型)表達(dá)式2.1.2標(biāo)識(shí)符與關(guān)鍵字2.1.3運(yùn)算符運(yùn)算符用于執(zhí)行數(shù)據(jù)的運(yùn)算。Java中的運(yùn)算符如表2-2所示。表2-2運(yùn)算符運(yùn)算符含義舉例+、-、*、/、%二元算術(shù)運(yùn)算符2*3.14*radius+、-、++、--一元算術(shù)運(yùn)算符i++、--j>、>=、<、<=、==、!=關(guān)系運(yùn)算符x>y、a+b==c+d&&、||、!邏輯運(yùn)算符x>y&&a+b==c+d&、|、~、^、<<、>>、>>>位運(yùn)算符x&y、a>>2=賦值運(yùn)算符x=a+b:?條件運(yùn)算符x>y?x:y+=-=*=/=%=&=^=|=<<=>>=>>>=擴(kuò)展的賦值運(yùn)算符x+=a+binstanceof判斷某一對(duì)象是否是某個(gè)類(lèi)的實(shí)例aStuinstanceofStudent當(dāng)混合運(yùn)算時(shí),根據(jù)運(yùn)算符的優(yōu)先級(jí)進(jìn)行運(yùn)算。如“a+b*c”,乘法“*”的優(yōu)先級(jí)比加法“+”的優(yōu)先級(jí)高,所以先計(jì)算“b*c”,然后再與“a”做加法運(yùn)算。結(jié)合性指的是相同優(yōu)先級(jí)的運(yùn)算符進(jìn)行運(yùn)算時(shí),是從左側(cè)開(kāi)始計(jì)算還是從右側(cè)開(kāi)始計(jì)算。如果從左側(cè)開(kāi)始計(jì)算稱(chēng)左結(jié)合,否則稱(chēng)為右結(jié)合。運(yùn)算符有兩個(gè)性質(zhì),分別是優(yōu)先級(jí)和結(jié)合性。2.1.3運(yùn)算符2.1.3運(yùn)算符算術(shù)運(yùn)算符執(zhí)行算術(shù)運(yùn)算,共有9個(gè)運(yùn)算,其中5個(gè)二元運(yùn)算符,4個(gè)一元運(yùn)算符。(1)二元算術(shù)運(yùn)算符二元算術(shù)運(yùn)算符分別是+(加)、-(減)、*(乘)、/(除)和%(取余),其中的+、-、*、/的操作數(shù)可以是任何數(shù)值型數(shù)據(jù)。做除法運(yùn)算時(shí),整型數(shù)和整型數(shù)相除,結(jié)果是整型數(shù),如1/3=0、5/2=2。取余運(yùn)算時(shí),兩個(gè)操作數(shù)必須是整型數(shù),其結(jié)果是兩個(gè)數(shù)相除后的余數(shù),如1%3=1、5%2=1、2%3=2。1.算術(shù)運(yùn)算符2.1.3運(yùn)算符1.算術(shù)運(yùn)算符求余數(shù)可按a%b=a-a/b*b計(jì)算,如:System.out.println(11%2);

//結(jié)果為1System.out.println(11%-2);

//結(jié)果為1System.out.println(-11%2);

//結(jié)果為-1System.out.println(-11%-2);

//結(jié)果為-1從結(jié)果看,結(jié)果的符號(hào)取決于第1個(gè)操作數(shù),所以當(dāng)兩個(gè)整數(shù)取余運(yùn)算時(shí),可以先計(jì)算兩數(shù)絕對(duì)值的余數(shù),再根據(jù)第1個(gè)操作數(shù)的符號(hào)確定結(jié)果的符號(hào)。2.1.3運(yùn)算符在程序中寫(xiě)算術(shù)表達(dá)式時(shí),不能將數(shù)學(xué)中的算術(shù)式直接寫(xiě)在程序中,而應(yīng)按Java的語(yǔ)法寫(xiě)表達(dá)式。如:在Java中應(yīng)寫(xiě)成:(-b+Math.sqrt(b*b-4*a*c))/(2*a)1.算術(shù)運(yùn)算符2.1.3運(yùn)算符(2)一元算術(shù)運(yùn)算符一元算術(shù)運(yùn)算符分別是+(取正)、-(取負(fù))、++(變量值增加1)和--(變量值減1)。其中+和-的操作數(shù)可以是任何數(shù)值型數(shù)據(jù)。語(yǔ)法形式:+(表達(dá)式)或-(表達(dá)式)表示將“表達(dá)式”的值取正或取負(fù)。取正(+)運(yùn)算較少用。++和--運(yùn)算符可以使變量增加1或減少1,它們的操作數(shù)一定是變量,不能是表達(dá)式。多數(shù)情況下變量都是整型變量。1.算術(shù)運(yùn)算符2.1.3運(yùn)算符根據(jù)運(yùn)算符和操作數(shù)的位置,可以分為前綴運(yùn)算和后綴運(yùn)算。運(yùn)算符在操作數(shù)前稱(chēng)前綴運(yùn)算,在后則稱(chēng)為后綴運(yùn)算。語(yǔ)法形式(以++為例):++變量或變量++前綴和后綴的運(yùn)算結(jié)果都可以使變量增加或減少1,但運(yùn)算過(guò)程不同。1.算術(shù)運(yùn)算符2.1.3運(yùn)算符如果是前綴運(yùn)算,先使變量增加1,然后再用這個(gè)變量參與其它運(yùn)算;如果是后綴運(yùn)算,則先使用這個(gè)變量,使用變量后再使變量增加或減少1。如下面的兩組運(yùn)算:如果單獨(dú)使變量增1或減1,如:i++;則不用考慮前綴還是后綴。inti=10,j;inti=10,j;j=++i;j=i++;2.1.3運(yùn)算符關(guān)系運(yùn)算符用于比較兩個(gè)量大小關(guān)系的運(yùn)算,通常用于表示運(yùn)算條件。關(guān)系運(yùn)算符共有6個(gè),分別是:>(大于)、>=(大于或等于)、<(小于)、<=(小于或等于)、==(等于)和!=(不等于),它們都是二元運(yùn)算符。由關(guān)系運(yùn)算符連接操作數(shù)所形成的式子稱(chēng)關(guān)系表達(dá)式。關(guān)系表達(dá)式的語(yǔ)法形式:操作數(shù)1關(guān)系運(yùn)算符操作數(shù)2關(guān)系運(yùn)算的結(jié)果是一個(gè)邏輯值:true或false。2.關(guān)系運(yùn)算符2.1.3運(yùn)算符關(guān)系運(yùn)算符中>、>=、<和<=的優(yōu)先級(jí)相同,==和!=的優(yōu)先級(jí)相同,后兩個(gè)的優(yōu)先級(jí)小于前四個(gè)。算術(shù)運(yùn)算的優(yōu)先級(jí)高于關(guān)系運(yùn)算。下面的關(guān)系表達(dá)式:a+b>c+d等價(jià)于(a+b)>(c+d)x+y==z等價(jià)于(x+y)==zb*b-4*a*c>=0等價(jià)于(b*b-4*a*c)>=02.關(guān)系運(yùn)算符2.1.3運(yùn)算符一個(gè)關(guān)系運(yùn)算只能表示一個(gè)條件。如果一個(gè)問(wèn)題有多個(gè)條件,這時(shí)可以用邏輯運(yùn)算將多個(gè)條件連接在一起。如算術(shù)不等式:x>y或a<=b寫(xiě)成等價(jià)的Java表達(dá)式就要用到邏輯運(yùn)算:x>y||a<=b邏輯運(yùn)算符有&&(邏輯與)、||(邏輯或)和?。ㄟ壿嫹牵?.邏輯運(yùn)算符2.1.3運(yùn)算符由邏輯運(yùn)算符連接操作數(shù)所形成的式子就是邏輯表達(dá)式。邏輯表達(dá)式的語(yǔ)法形式:操作數(shù)1邏輯運(yùn)算符操作數(shù)2!操作數(shù)“操作數(shù)1”、“操作數(shù)2”和“操作數(shù)”的值的類(lèi)型必須是邏輯型(布爾型)。邏輯運(yùn)算的結(jié)果仍然是邏輯值。3.邏輯運(yùn)算符2.1.3運(yùn)算符除運(yùn)算符()、

[]和.外,?。ㄟ壿嫹牵┻\(yùn)算符的優(yōu)先級(jí)比其它運(yùn)算符的優(yōu)先級(jí)都高,&&和||的優(yōu)先級(jí)低于關(guān)系運(yùn)算,而&&的優(yōu)先級(jí)比||高。如:a>b&&c>d

等價(jià)于

(a>b)&&(c>d)!b==c||d<a

等價(jià)于

((!b)==c)||(d<a)a+b>c&&x+y<b

等價(jià)于

((a+b)>c)&&((x+y)<b)3.邏輯運(yùn)算符2.1.3運(yùn)算符計(jì)算機(jī)內(nèi)部表示數(shù)時(shí)是用二進(jìn)制表示的。有時(shí)候想獲得一個(gè)數(shù)中的某一位或某幾位,就可以通過(guò)位運(yùn)算來(lái)實(shí)現(xiàn)。位運(yùn)算符有&(位與)、|(位或)、~(位反)、^(位異或)、<<(位左移)、>>(位右移,算術(shù)右移)和>>>(無(wú)符號(hào)右移),其中的“~”是一元運(yùn)算符,其余的是二元運(yùn)算符。4.位運(yùn)算符2.1.3運(yùn)算符(1)位與運(yùn)算兩個(gè)操作數(shù)的對(duì)應(yīng)二進(jìn)制位進(jìn)行與運(yùn)算。如果對(duì)應(yīng)位都是1,則位與結(jié)果為1,否則為0。例如“25&-12”運(yùn)算,可以用下面的式子完成計(jì)算(以一個(gè)字節(jié)為例):(2)位或運(yùn)算兩個(gè)操作數(shù)的對(duì)應(yīng)二進(jìn)位進(jìn)行或運(yùn)算。如果對(duì)應(yīng)位都是0,則位或結(jié)果為0,否則只要有一位為1則結(jié)果為1。例如“25|-12”運(yùn)算,可以用下面的式子完成計(jì)算(以一個(gè)字節(jié)為例):2.1.3運(yùn)算符(3)位反運(yùn)算一個(gè)操作數(shù)的各個(gè)二進(jìn)位按位取反,原來(lái)是1的變成0,原來(lái)是0的變成1。例如“~-12”運(yùn)算,可以用下面的式子完成計(jì)算(以一個(gè)字節(jié)為例):(4)位異或運(yùn)算兩個(gè)操作數(shù)的對(duì)應(yīng)二進(jìn)位進(jìn)行異或運(yùn)算,異或運(yùn)算是取不同。如果對(duì)應(yīng)位不同,則位異或結(jié)果為1,否則結(jié)果為0。例如“25^-12”運(yùn)算,可以用下面的式子完成計(jì)算(以一個(gè)字節(jié)為例):2.1.3運(yùn)算符(5)位左移運(yùn)算將一個(gè)操作數(shù)的各個(gè)二進(jìn)位順序往左移動(dòng)若干位。移動(dòng)后,空出的低位用0填充,移出的高位舍棄不要。位左移運(yùn)算的表達(dá)式形式:操作數(shù)<<移動(dòng)的位數(shù)例如“-12<<3”運(yùn)算將-12的各位順序往左移動(dòng)3位,可以用下面的式子完成計(jì)算:結(jié)果為-96,相當(dāng)于-12*23。<<311110100(-12補(bǔ)碼)

10100000(-96)2.1.3運(yùn)算符(6)位右移運(yùn)算>>將一個(gè)操作數(shù)的各個(gè)二進(jìn)位順序往右移動(dòng)若干位。移動(dòng)后,空出的高位用原來(lái)的高位值填充,移出的低位舍棄不要。位左移運(yùn)算的表達(dá)式形式:操作數(shù)>>移動(dòng)的位數(shù)例如“-12>>3”運(yùn)算將-12的各位順序往右移動(dòng)3位,可以用下面的式子完成計(jì)算:結(jié)果為-2,相當(dāng)于-12/23。位右移運(yùn)算可以使結(jié)果的符號(hào)與原操作數(shù)的符號(hào)相同,又稱(chēng)為算術(shù)右移。>>311110100(-12補(bǔ)碼)

11111110(-2)2.1.3運(yùn)算符(7)無(wú)符號(hào)位右移運(yùn)算>>>將一個(gè)操作數(shù)的各個(gè)二進(jìn)位順序往右移動(dòng)若干位。移動(dòng)后,空出的高位全部用0填充,移出的低位舍棄不要。位右移運(yùn)算的表達(dá)式形式:操作數(shù)>>>移動(dòng)的位數(shù)例如“-12>>>3”運(yùn)算將-12的各位順序往右移動(dòng)3位,可以用下面的式子完成計(jì)算:結(jié)果為30。對(duì)于負(fù)數(shù),無(wú)符號(hào)右移的結(jié)果與原數(shù)差別較大。無(wú)符號(hào)右移又稱(chēng)為邏輯右移。>>>311110100(-12補(bǔ)碼)

00011110(30)2.1.3運(yùn)算符條件運(yùn)算符是“?:”,可以根據(jù)條件進(jìn)行計(jì)算。使用時(shí)的語(yǔ)法形式:關(guān)系或邏輯表達(dá)式(條件)?表達(dá)式1:表達(dá)式2例如,找出整型數(shù)a和b中的大值,可以用關(guān)系運(yùn)算符計(jì)算:max=a>b?a:b;或:max=b<a?a:b;條件運(yùn)算符的優(yōu)先級(jí)高于賦值運(yùn)算符,但低于其它運(yùn)算符。結(jié)合性是右結(jié)合。5.條件運(yùn)算符2.1.3運(yùn)算符賦值運(yùn)算符執(zhí)行賦值運(yùn)算。可以將賦值運(yùn)算符分為基本的賦值運(yùn)算符和擴(kuò)展的賦值運(yùn)算符。(1)基本的賦值運(yùn)算符基本的賦值運(yùn)算符即“=”。由賦值運(yùn)算符連接操作數(shù)所形成的式子稱(chēng)賦值表達(dá)式。它的語(yǔ)法形式:變量=表達(dá)式賦值運(yùn)算符的左側(cè)必須是變量,右側(cè)是合法的表達(dá)式(常數(shù)、單一變量都是表達(dá)式的特例)。6.賦值運(yùn)算符2.1.3運(yùn)算符(2)擴(kuò)展的賦值運(yùn)算符擴(kuò)展的賦值運(yùn)算符是由基本的賦值運(yùn)算符與算術(shù)和位運(yùn)算符組合而成的運(yùn)算符。擴(kuò)展的賦值運(yùn)算符共11個(gè),包括:+=、-=、*=、/=、%=、&=、|=、^=、<<=、>>=和>>>=。擴(kuò)展的賦值運(yùn)算符的使用的語(yǔ)法形式:變量擴(kuò)展的賦值運(yùn)算符表達(dá)式如:x*=a+b它的等價(jià)形式:x=x*(a+b)6.賦值運(yùn)算符2.1.3運(yùn)算符6.賦值運(yùn)算符將一個(gè)擴(kuò)展的賦值表達(dá)式轉(zhuǎn)換成基本的賦值表達(dá)式,可以通過(guò)下面的步驟完成:將右側(cè)表達(dá)式加括號(hào):x*=(a+b)再將左側(cè)的“x*”移到賦值號(hào)右側(cè):=x*(a+b)最后再在賦值號(hào)左側(cè)加上變量x:x=x*(a+b)賦值運(yùn)算符的優(yōu)先級(jí)在所有的運(yùn)算符中最低,也就是,所有其它運(yùn)算都執(zhí)行完后才能執(zhí)行賦值運(yùn)算。其結(jié)合性是右結(jié)合。2.1.3運(yùn)算符instanceof是類(lèi)型比較運(yùn)算符,用于判斷某一個(gè)對(duì)象是否是某一個(gè)類(lèi)或其子類(lèi)的實(shí)例。如果是,則表達(dá)式的值為“true”,否則為“false”。它的語(yǔ)法形式:對(duì)象instanceof類(lèi)名類(lèi)型比較運(yùn)算符的優(yōu)先級(jí)較高,結(jié)合性是左結(jié)合。7.類(lèi)型比較運(yùn)算符2.2輸入輸出2.3流程控制2.4數(shù)組2.1數(shù)據(jù)類(lèi)型和運(yùn)算符號(hào)2.5小結(jié)C目錄ONTENTS程序運(yùn)行時(shí),可能需要給程序輸入數(shù)據(jù),這時(shí)需要用到輸入語(yǔ)句;程序處理完數(shù)據(jù),要將結(jié)果輸出出來(lái),就要用到輸出語(yǔ)句。Java采用流式方式對(duì)數(shù)據(jù)進(jìn)行輸入輸出。Java定義了很多流類(lèi),可以通過(guò)流類(lèi)的對(duì)象及其中的方法實(shí)現(xiàn)數(shù)據(jù)的輸入輸出。2.2輸入輸出2.2.1

輸入從鍵盤(pán)(標(biāo)準(zhǔn)輸入設(shè)備)輸入數(shù)據(jù),可以用Scanner類(lèi)的對(duì)象及其中的方法(C/C++語(yǔ)言稱(chēng)為函數(shù))實(shí)現(xiàn)輸入。Scanner類(lèi)的對(duì)象的定義形式:Scannerreader=newScanner(System.in);Scanner類(lèi)中有較多的方法,常用的與基本數(shù)據(jù)類(lèi)型有關(guān)的方法見(jiàn)表

2-4。2.2.1輸入【例2.2】基本數(shù)據(jù)類(lèi)型數(shù)據(jù)的輸入與輸出。Example2_02.java【例2.3】有若干個(gè)學(xué)生某一課程的成績(jī),計(jì)算這些學(xué)生的總成績(jī)和平均成績(jī)。由于學(xué)生人數(shù)未知(如多個(gè)班級(jí)多個(gè)學(xué)生),所以無(wú)法準(zhǔn)確輸入成績(jī)數(shù)。這時(shí)可以利用方法hasNextXXX()判斷是否還有成績(jī),如果有則繼續(xù)累加,否則計(jì)算平均成績(jī)。Example2_03.java2.2.2輸出基本數(shù)據(jù)類(lèi)型可以用PrintStream類(lèi)中的方法完成輸出。類(lèi)中有三種常用的方法:voidprint(基本數(shù)據(jù)類(lèi)型數(shù)據(jù));voidprintln([基本數(shù)據(jù)類(lèi)型數(shù)據(jù)]);voidprintf(輸出格式控制字符串,輸出項(xiàng)表列);2.2.2輸出1.print()方法print()方法有并且只能有一個(gè)基本數(shù)據(jù)類(lèi)型的數(shù)據(jù),包括字符串類(lèi)型,它輸出數(shù)據(jù)后不換行。如a=10,可以用System.out.print(“a=”+a);輸出“a=10”。2.println()方法println()方法可以有參數(shù)也可以沒(méi)

參數(shù)。如果沒(méi)參數(shù),只輸出一個(gè)換行。如果有參數(shù),有并且只能有一個(gè)基本數(shù)據(jù)類(lèi)型的參數(shù),輸出該參數(shù)后換行。它的參數(shù)用法與print()方法相同。2.2.2輸出3.printf()方法printf()方法是有格式的數(shù)據(jù)輸出方法,它一次可以按給定的格式輸出較多的數(shù)據(jù)。它的使用形式:printf(String

format,

Object...

args)“format”是用于控制后面輸出項(xiàng)的字符串,“args”是個(gè)數(shù)可變的輸出數(shù)據(jù)。“format”的格式如下:[普通字符]%[標(biāo)志字符][輸出寬度][.小數(shù)位數(shù)]格式控制字符[普通字符]其中的“%”和“格式控制字符”必須有,其余的可有可無(wú)。“普通字符”按原樣輸出?!案袷娇刂谱址比绫?-5所示?!纠?.4】printf()方法的使用。Example2_04.java2.2輸入輸出2.3流程控制2.4數(shù)組2.1數(shù)據(jù)類(lèi)型和運(yùn)算符號(hào)2.5小結(jié)C目錄ONTENTS2.3.1

順序控制語(yǔ)句【例2.5】給定三角形的三邊長(zhǎng)(一定能組成三角形),計(jì)算三角形的周長(zhǎng)和面積。Example2_05.java順序控制語(yǔ)句是按程序員所寫(xiě)程序中的語(yǔ)句順序由前往后順序執(zhí)行。2.3.2選擇控制語(yǔ)句利用選擇控制語(yǔ)句,可以使程序有條件地執(zhí)行某些語(yǔ)句,或不執(zhí)行某些語(yǔ)句,而不必按照語(yǔ)句順序執(zhí)行程序。通過(guò)選擇語(yǔ)句的使用,可以提高程序的通用性。Java中選擇語(yǔ)句包括if語(yǔ)句和switch語(yǔ)句。可以通過(guò)if語(yǔ)句給出條件,只有滿(mǎn)足條件的語(yǔ)句才能被執(zhí)行。if語(yǔ)句可以分為簡(jiǎn)單的if語(yǔ)句、if-else語(yǔ)句和if-elseif-else語(yǔ)句。if語(yǔ)句中還可以有if語(yǔ)句,稱(chēng)為if語(yǔ)句的嵌套。1.if選擇語(yǔ)句2.3.2選擇控制語(yǔ)句(1)簡(jiǎn)單的if語(yǔ)句簡(jiǎn)單的if語(yǔ)句可以帶有一個(gè)條件和子句。根據(jù)子句是一條語(yǔ)句還是多條語(yǔ)句,if語(yǔ)句的語(yǔ)法形式如下:形式1:if(條件表達(dá)式)一條語(yǔ)句(if子句)形式2:if(條件表達(dá)式){多條語(yǔ)句(if子句)}2.3.2選擇控制語(yǔ)句簡(jiǎn)單if語(yǔ)句的執(zhí)行過(guò)程如圖所示?!纠?.6】給定兩個(gè)正整數(shù),找出這兩個(gè)正整數(shù)中的大數(shù)。Example2_06.java【例2.7】重寫(xiě)例2.5,當(dāng)給定的三邊長(zhǎng)能構(gòu)成三角形時(shí)才計(jì)算三角形的面積。Example2_07.java2.3.2選擇控制語(yǔ)句(2)if-else語(yǔ)句if-else語(yǔ)句可以實(shí)現(xiàn)兩個(gè)分支。它的語(yǔ)法形式:if(條件表達(dá)式)語(yǔ)句1else語(yǔ)句2執(zhí)行過(guò)程如圖所示?!纠?.8】用if-else語(yǔ)句重寫(xiě)例2.7。Example2_08.java2.3.2選擇控制語(yǔ)句(3)if語(yǔ)句的嵌套如果if或else的子句還包含if語(yǔ)句,稱(chēng)為if語(yǔ)句的嵌套。用嵌套的if語(yǔ)句可以實(shí)現(xiàn)更復(fù)雜的判斷,或者將復(fù)雜的判斷分成幾個(gè)簡(jiǎn)單的判斷。if語(yǔ)句的嵌套沒(méi)有固定形式,根據(jù)問(wèn)題的需要進(jìn)行判斷??梢詫?xiě)出如下幾種形式:形式1:if(條件1)if(條件2)語(yǔ)句形式2:if(條件1)if(條件11)語(yǔ)句1elseif(條件2)語(yǔ)句22.3.2選擇控制語(yǔ)句【例2.9】根據(jù)學(xué)生的百分成績(jī)給出成績(jī)等級(jí)。90分以為優(yōu)秀,80分以為良好,70分以為中等,60分以上為及格,低于60分為不及格。Example2_09.java形式3:if(條件1)if(條件11)語(yǔ)句1else語(yǔ)句2形式4:if(條件1){if(條件11)語(yǔ)句1}elseif(條件2)語(yǔ)句22.3.2選擇控制語(yǔ)句(4)if-elseif-else語(yǔ)句if-elseif-else可以實(shí)現(xiàn)更多情況的判斷。它的語(yǔ)句形式:if(條件表達(dá)式1)語(yǔ)句1elseif(條件表達(dá)式2)語(yǔ)句2…elseif(條件表達(dá)式n)語(yǔ)句nelse語(yǔ)句n+12.3.2選擇控制語(yǔ)句

它的執(zhí)行過(guò)程如圖所示。【例2.10】用if-elseif-else語(yǔ)句改寫(xiě)例2.9。Example2_10.java(4)if-elseif-else語(yǔ)句2.3.2選擇控制語(yǔ)句switch語(yǔ)句也用于選擇判斷。當(dāng)判斷條件較多時(shí),用if或嵌套的if語(yǔ)句會(huì)降低程序的可讀性,這時(shí)可用switch實(shí)現(xiàn)多重選擇判斷。switch語(yǔ)句的語(yǔ)法形式:2.switch選擇語(yǔ)句2.3.2選擇控制語(yǔ)句switch(表達(dá)式){case常量1:語(yǔ)句組1;case常量2:語(yǔ)句組2;……case常量n:語(yǔ)句組n;default:語(yǔ)句組n+1;}2.switch選擇語(yǔ)句2.3.2選擇控制語(yǔ)句switch語(yǔ)句的執(zhí)行過(guò)程如圖所示。【例2.12】用switch語(yǔ)句重寫(xiě)例2.9。Example2_12.java2.3.2選擇控制語(yǔ)句如果想使某一情況下只執(zhí)行某一語(yǔ)句組,可以在每一語(yǔ)句組后加上“break”語(yǔ)句。switch(表達(dá)式){case常量1:語(yǔ)句組1;break;case常量2:語(yǔ)句組2;break;

……case常量n:語(yǔ)句組n;break;default:語(yǔ)句組n+1;}2.3.2選擇控制語(yǔ)句加上“break”語(yǔ)句后switch語(yǔ)句的執(zhí)行過(guò)程如圖所示?!纠?.13】重寫(xiě)例2.12,使程序能有正確的運(yùn)行結(jié)果。Example2_13.java2.3.3循環(huán)控制語(yǔ)句循環(huán)結(jié)構(gòu)根據(jù)一定的條件可以對(duì)問(wèn)題或問(wèn)題的部分進(jìn)行反復(fù)處理,直到條件不滿(mǎn)足結(jié)束循環(huán)。循環(huán)結(jié)構(gòu)的程序可以更有效地利用計(jì)算機(jī)。Java語(yǔ)言中有三種循環(huán)語(yǔ)句,分別是while循環(huán)、do-while循環(huán)和for循環(huán)。while循環(huán)是先判斷條件是否為真,如果為真,則執(zhí)行循環(huán)。while循環(huán)的語(yǔ)句形式:1.while循環(huán)形式1:while(循環(huán)條件)一條語(yǔ)句(循環(huán)體)形式2:while(循環(huán)條件){多條語(yǔ)句(循環(huán)體)}2.3.3循環(huán)控制語(yǔ)句while語(yǔ)句的執(zhí)行過(guò)程如圖所示。【例2.14】計(jì)算1+2+3+…100值。Example2_14.java2.3.3循環(huán)控制語(yǔ)句do-while循環(huán)是先執(zhí)行循環(huán)體,再根據(jù)條件確定是否能再執(zhí)行循環(huán)體。do-while循環(huán)的語(yǔ)句形式:2.do-while循環(huán)形式1:do一條語(yǔ)句(循環(huán)體)while(循環(huán)條件);形式2:do{多條語(yǔ)句(循環(huán)體)}while(循環(huán)條件);2.3.3循環(huán)控制語(yǔ)句執(zhí)行過(guò)程如圖所示?!纠?.16】用do-while語(yǔ)句重寫(xiě)例2.14。Example2_16.java2.3.3循環(huán)控制語(yǔ)句for循環(huán)是三種循環(huán)中使用最靈活、使用最多的循環(huán)。在for循環(huán)中,可以對(duì)變量(循環(huán)控制變量)初始化、控制循環(huán)(循環(huán)條件)和使變量變化(循環(huán)控制變量增量)。for循環(huán)的一般語(yǔ)法形式:for(變量初始化表達(dá)式;循環(huán)條件表達(dá)式;變量增量表達(dá)式)循環(huán)體3.for循環(huán)2.3.3循環(huán)控制語(yǔ)句執(zhí)行過(guò)程如圖所示?!纠?.18】用for語(yǔ)句重寫(xiě)例2.14。Example2_18.java【例2.19】判斷一個(gè)自然數(shù)是否是素?cái)?shù)。所謂素?cái)?shù)是指,如果一個(gè)數(shù)如果只能被1和自身整除,則該數(shù)是素?cái)?shù),又稱(chēng)質(zhì)數(shù)。Example2_19.java一個(gè)數(shù)的因子除該數(shù)本身外不可能大于該數(shù)的一半,循環(huán)條件可以寫(xiě)成:i<=x/2更快的方法:i<=(int)Math.sqrt(x)2.3.3循環(huán)控制語(yǔ)句for語(yǔ)句中有三個(gè)表達(dá)式,根據(jù)需要,三個(gè)表達(dá)式中可以沒(méi)有任何一個(gè)、沒(méi)有任何兩個(gè),甚至三個(gè)表達(dá)式都可以沒(méi)有。形式1:沒(méi)有第1個(gè)表達(dá)式,變量i的初始化在for之前用賦值語(yǔ)句實(shí)現(xiàn)。

sum=0; i=1; for(;i<=100;i++) sum+=i;2.3.3循環(huán)控制語(yǔ)句形式2:沒(méi)有第2個(gè)表達(dá)式,循環(huán)結(jié)束的條件在循環(huán)體中判斷,其中的break語(yǔ)句用于結(jié)束循環(huán)。

sum=0; for(i=1;;i++) { sum+=i; if(i>=100) break; }2.3.3循環(huán)控制語(yǔ)句形式3:沒(méi)有第3個(gè)表達(dá)式,變量i的改變放在循環(huán)體中,成為循環(huán)體中的一條語(yǔ)句。

sum=0; for(i=1;i<=100;) { sum+=i; i=i+1; }2.3.3循環(huán)控制語(yǔ)句形式4:沒(méi)有第1個(gè)表達(dá)式和第3個(gè)表達(dá)式,綜合使用形式1和形式3。

sum=0; i=1; for(;i<=100;) { sum+=i; i++; }2.3.3循環(huán)控制語(yǔ)句形式5:三個(gè)表達(dá)式都沒(méi)有,綜合使用形式1、形式2和形式3。

sum=0; i=1; for(;;) { sum+=i; if(i>=100) break; i++; }2.3.3循環(huán)控制語(yǔ)句形式6:循環(huán)體是空循環(huán)體,累加過(guò)程放在第3個(gè)表達(dá)式中。

for(sum=0,i=1;i<=100;sum+=i,i++);2.3.3循環(huán)控制語(yǔ)句如果循環(huán)體中還有循環(huán)語(yǔ)句,則形成循環(huán)的嵌套。以下是幾種循環(huán)的嵌套形式。4.循環(huán)的嵌套形式1:for(…)while(){…}形式2:while(…)do{…}while(…);2.3.3循環(huán)控制語(yǔ)句如果循環(huán)體中還有循環(huán)語(yǔ)句,則形成循環(huán)的嵌套。以下是幾種循環(huán)的嵌套形式。4.循環(huán)的嵌套【例2.20】給定兩個(gè)自然數(shù),找出這兩個(gè)然數(shù)之間的所有素?cái)?shù)。Example2_20.java

形式3:dofor(…){…}while(…);

形式4:while(…)while(…){…}2.3.4

選擇控制語(yǔ)句與循環(huán)控制語(yǔ)句的嵌套上面分別講述了選擇控制語(yǔ)句和循環(huán)控制語(yǔ)句。在實(shí)際使用時(shí),兩種控制語(yǔ)句經(jīng)?;煊茫x擇語(yǔ)句嵌套循環(huán)語(yǔ)句,或者循環(huán)語(yǔ)句嵌套選擇語(yǔ)句。多數(shù)情況下,都是循環(huán)語(yǔ)句嵌套選擇語(yǔ)句,如例2.20和例2.21中就是循環(huán)語(yǔ)句嵌套了選擇語(yǔ)句。2.3.5break語(yǔ)句與continue語(yǔ)句在前面介紹switch語(yǔ)句時(shí)講過(guò)break語(yǔ)句。break語(yǔ)句用于switch中可以提前結(jié)束switch語(yǔ)句。break語(yǔ)句更多是用在循環(huán)中。break用在循環(huán)中可以提前結(jié)束它所在的循環(huán),不管后面還有多少次循環(huán)都不再被執(zhí)行了。break語(yǔ)句可以分成基本的break語(yǔ)句和帶標(biāo)號(hào)的break語(yǔ)句。break語(yǔ)句和continue語(yǔ)句都是控制轉(zhuǎn)移語(yǔ)句。1.break語(yǔ)句2.3.5break語(yǔ)句與continue語(yǔ)句(1)基本的break語(yǔ)句基本的break語(yǔ)句的語(yǔ)法形式:break;一定要將這個(gè)語(yǔ)句放到循環(huán)體中,否則會(huì)出現(xiàn)編譯錯(cuò)誤。【例2.22】計(jì)算1!+2!+3!+……,直到某一個(gè)數(shù)的階乘大于1000_000為止(大于1000_0000的數(shù)不累加)。Example2_22.java2.3.5break語(yǔ)句與continue語(yǔ)句(2)帶標(biāo)號(hào)的break語(yǔ)句基本的break語(yǔ)句使它所在的循環(huán)提前結(jié)束,而帶標(biāo)號(hào)的break語(yǔ)句可以使標(biāo)號(hào)所指的循環(huán)提前結(jié)束。帶標(biāo)號(hào)的break語(yǔ)句的語(yǔ)法形式:標(biāo)號(hào):……break標(biāo)號(hào);一般地,帶標(biāo)號(hào)的break語(yǔ)句多用在多重循環(huán)中,用于在內(nèi)層循環(huán)中提前結(jié)束外層的循環(huán)。【例2.23】找出從100開(kāi)始的若干個(gè)素?cái)?shù),直到某一個(gè)非素?cái)?shù)的第一個(gè)因子大于15為止。Example2_23.java2.3.5break語(yǔ)句與continue語(yǔ)句continue語(yǔ)句用在循環(huán)中,可以使它所在循環(huán)的當(dāng)前一次循環(huán)提前結(jié)束,即使它下面還有語(yǔ)句也不再執(zhí)行,接著執(zhí)行下一次循環(huán)。continue語(yǔ)句也分為基本的continue語(yǔ)句和帶標(biāo)號(hào)的continue語(yǔ)句。2.continue語(yǔ)句2.3.5break語(yǔ)句與continue語(yǔ)句(1)基本的continue語(yǔ)句基本的continue語(yǔ)句的語(yǔ)法形式:continue;這條語(yǔ)句必須在一個(gè)循環(huán)體中?!纠?.24】從鍵盤(pán)輸入若干個(gè)正整數(shù),將其中不能被3整除的數(shù)累加在一起,并輸出其和,當(dāng)輸入負(fù)數(shù)時(shí)結(jié)束。Example2_24.java2.3.5break語(yǔ)句與continue語(yǔ)句(2)帶標(biāo)號(hào)的continue語(yǔ)句帶標(biāo)號(hào)的continue語(yǔ)句使它標(biāo)號(hào)所指的循環(huán)當(dāng)前一次循環(huán)提前結(jié)束,后面的若干次循環(huán)還能繼續(xù)執(zhí)行。它的語(yǔ)法形式:標(biāo)號(hào):……continue標(biāo)號(hào);帶標(biāo)號(hào)的continue語(yǔ)句一般用在多重循環(huán)中,“標(biāo)號(hào)”指向外層循環(huán)?!纠?.25】帶標(biāo)號(hào)的continue的使用。Example2_25.java2.2輸入輸出2.3流程控制2.4數(shù)組2.1數(shù)據(jù)類(lèi)型和運(yùn)算符號(hào)2.5小結(jié)C目錄ONTENTS2.4.1

一維數(shù)組有一個(gè)下標(biāo)的數(shù)組稱(chēng)為一維數(shù)組。一維數(shù)組在使用前必須先聲明、再創(chuàng)建,最后才能使用數(shù)組。聲明一維數(shù)組有以下幾種常見(jiàn)形式:(1)形式1數(shù)據(jù)類(lèi)型數(shù)組名[];“數(shù)據(jù)類(lèi)型”表示數(shù)組中元素的數(shù)據(jù)類(lèi)型,“數(shù)組名”是標(biāo)識(shí)符,“[]”是下標(biāo)運(yùn)算符,例如:inta[];1.聲明數(shù)組2.4.1

一維數(shù)組(2)形式2數(shù)據(jù)類(lèi)型[]數(shù)組名;[]與數(shù)據(jù)類(lèi)型和數(shù)組名之間有無(wú)空格都可以。例如float[]x;//[]與數(shù)據(jù)類(lèi)型間有空格float[]x;//[]與數(shù)據(jù)類(lèi)型間無(wú)空格(3)可以一次聲明多個(gè)數(shù)組,這時(shí)需注意[]的位置。double[]x,y;//[]在數(shù)組名列表前,表示聲明兩個(gè)double型數(shù)組x和ydoublex[],y;//[]在x后,表示聲明了double型數(shù)組x,y是普通變量2.4.1

一維數(shù)組必須創(chuàng)建數(shù)組后才能使用數(shù)組。數(shù)組的創(chuàng)建方法:new數(shù)據(jù)類(lèi)型[數(shù)組長(zhǎng)度表達(dá)式]“數(shù)據(jù)類(lèi)型”指的是數(shù)組元素的類(lèi)型;常量表達(dá)式定義數(shù)組長(zhǎng)度或元素個(gè)數(shù),它可以是常量、變量或者返回值為常量的任意表達(dá)式,其值的類(lèi)型必須是整型。如:newint[10]創(chuàng)建了一個(gè)整型數(shù)組,共有10個(gè)元素,即a[0]到a[9]。2.創(chuàng)建數(shù)組2.4.1

一維數(shù)組數(shù)組聲明的是數(shù)組的名稱(chēng),是引用;創(chuàng)建數(shù)組則是為數(shù)組元素分配內(nèi)存空間。使用數(shù)組就是使用引用訪(fǎng)問(wèn)元素。使用之前要把數(shù)組名和創(chuàng)建的數(shù)組聯(lián)結(jié)起來(lái):已聲明的數(shù)組名=創(chuàng)建的數(shù)組;如前面已聲明的數(shù)組名a和x,讓它們分別表示一個(gè)數(shù)組:a=newint[10];x=newdouble[20];則可以分別通過(guò)a和x使用這兩個(gè)數(shù)組。2.4.1

一維數(shù)組也可以將數(shù)組的聲明和創(chuàng)建放在一起。如:inta[]=newint[10];doublex[]=newdouble[20];使用數(shù)組元素的形式:數(shù)組名[下標(biāo)表達(dá)式]“下標(biāo)表達(dá)式”的值的類(lèi)型必須是整型。數(shù)組元素的下標(biāo)從0開(kāi)始,最大下標(biāo)為“數(shù)組元素個(gè)數(shù)-1”,元素的下標(biāo)值必須在這兩個(gè)數(shù)以?xún)?nèi)。2.4.1

一維數(shù)組使用數(shù)組應(yīng)注意以下幾方面問(wèn)題。使用合法下標(biāo)。下標(biāo)有合法范圍,下標(biāo)在下界和上界之外謂之越界,下標(biāo)越界導(dǎo)致拋出異常ArrayIndexOutOfBoundsException。(異常的內(nèi)容詳見(jiàn)第6章)數(shù)組創(chuàng)建后,每一個(gè)元素都有默認(rèn)值。對(duì)于數(shù)值型數(shù)組,默認(rèn)值是0(整型、字符型)或0.0(浮點(diǎn)型);對(duì)于布爾型數(shù)組,默認(rèn)值是false。當(dāng)然,根據(jù)需要,在元素參與運(yùn)算前應(yīng)通過(guò)賦值的形式使元素有確定的值。在Java中,任何一個(gè)數(shù)組(無(wú)論什么類(lèi)型)都有一個(gè)“l(fā)ength”屬性,該屬性表示數(shù)組的長(zhǎng)度。如:a.length表示數(shù)組a的元素個(gè)數(shù)。0102032.4.1

一維數(shù)組使用數(shù)組應(yīng)注意以下幾方面問(wèn)題。數(shù)組名作為方法形參時(shí),傳遞的是數(shù)組的引用,可在主調(diào)和被調(diào)方法之間起到“雙向傳遞”數(shù)據(jù)的效果。04【例2.26】一維數(shù)組的使用。將一個(gè)數(shù)組中的各個(gè)元素賦值并按逆序打印出來(lái)。Example2_26.java【例2.27】給定一組數(shù)據(jù),將這組數(shù)據(jù)按由小到大的順序輸出。本題采用下述方法排序。先將最大的數(shù)放到最后面。從第0(下標(biāo))個(gè)數(shù)開(kāi)始,兩兩比較,如果前面的數(shù)比后的數(shù)大,則交換兩個(gè)數(shù)的值。Example2_27.java2.4.1

一維數(shù)組表達(dá)式:newint[10]創(chuàng)建一個(gè)有10個(gè)元素的整型數(shù)組,同時(shí)表達(dá)式

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論