第2章 基本數(shù)據(jù)類型與運算_第1頁
第2章 基本數(shù)據(jù)類型與運算_第2頁
第2章 基本數(shù)據(jù)類型與運算_第3頁
第2章 基本數(shù)據(jù)類型與運算_第4頁
第2章 基本數(shù)據(jù)類型與運算_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

人民郵電出版社2基本數(shù)據(jù)類型與運算Java程序設(shè)計第章C目錄ONTENTS2.2基本數(shù)據(jù)類型2.3運算符和表達式2.4小結(jié)2.1標識符與關(guān)鍵字2.1.1Unicode字符集Unicode字符集編碼是通用多八位編碼字符集(UniversalMultiple-OctetCodedCharacterSet)的簡稱,是由Unicode學術(shù)學會(UnicodeConsortium)制訂的字符編碼系統(tǒng),支持現(xiàn)今世界多種不同語言的書面文本的交換、處理及顯示。它為每種語言中的每個字符設(shè)定了統(tǒng)一并且唯一的二進制編碼,以滿足跨語言、跨平臺進行文本轉(zhuǎn)換、處理的要求。Unicode使用十六位二進制數(shù)字編碼,即四位十六進制數(shù),因此它最多可以為65536個字符編碼。【例2.1】編程顯示Unicode字符集中從序號19966至40959的字符(中、日、韓文字)。

Example2_01.java2.1.2標識符Java程序中各種名字就是標識符。類名、方法名、數(shù)組名、符號常量名、標號名都是標識符。標識符命名規(guī)則:Unicode使用十六位二進制數(shù)字編碼,因此它最多可以為65536個字符編碼。在Unicode中包含了大部分國家的字母表,如拉丁字母、常用的漢字、希臘字母、日語、俄語、朝鮮語等多種語言的“字母”,目前已定義四萬多個字符。Java標識符為字母、下劃線、美元符號和數(shù)字等Unicode字符集中字符組成的長度不限的字符串,不能以數(shù)字做開頭字符。標識符不可以是關(guān)鍵字和保留字。2.1.2標識符下面是正確的標識符:下面是不正確的標識符:name年齡hao123fee$_status-date1_2_3月,日while@zhang2.1.3

關(guān)鍵字關(guān)鍵字也是語言中的詞匯(Token)。標識符是由程序員命名的,其意義是程序員賦予的,而關(guān)鍵字是語言系統(tǒng)定義且賦予了特定意義的字,在程序中不能用作其他目的。下面是一些關(guān)鍵字:docaseclassdoubleifC目錄ONTENTS2.2基本數(shù)據(jù)類型2.3運算符和表達式2.4小結(jié)2.1標識符與關(guān)鍵字2.2.1

變量與常量變量(Variable)在程序中用來存儲數(shù)據(jù)。按Java編碼規(guī)范,變量名用小寫字母。為了可讀性要求,使用一個或多個詞連起來組成變量時,除了第一個詞,其他詞首字母均大寫。變量在用前需要聲明,聲明語法如下:數(shù)據(jù)類型定義符變量名表列;例如:intx,y,z;charc1,c2;1、變量2、常量常量分為符號常量(SymbolicConstant)和直接量(LiteralConstant)兩種。Java符號常量與變量語法接近,如:finaldatatypesymbolic-constant=constant-value;例如,定義數(shù)學常數(shù)PI:finaldoublePI=3.14159;2.2.1變量與常量符號常量在程序運行過程中其值不可以改變,符號常量一般用大寫字母。2.2.2基本數(shù)據(jù)類型在計算機中,不同類型的數(shù)據(jù)其存儲形式和處理方式不同,所以要對數(shù)據(jù)區(qū)分類型。Java語言本身定義的數(shù)據(jù)類型稱為基本類型。基本數(shù)據(jù)類型布爾型字符型浮點型整型字節(jié)byte、短整型short、基本整型int、長整型long單精度float和雙精度doublecharboolean2.2.2基本數(shù)據(jù)類型整型數(shù)可以用二進制、八進制、十進制和十六進制表示。

二進制:以0b開頭,由數(shù)字0和1組成,如0b001111101000。為了提高二進制數(shù)的可讀性,數(shù)字中間可以用“_”分隔,如

0b0011_1110_1000八進制:以0開頭,由數(shù)字0~7組成,如0176,而089則不對。十進制:日常使用的進制,由數(shù)字0~9組成,如123。十六進制:以0x或0X開頭,由數(shù)字0~9及字母a~f(大寫也可)組成,如0x12EF、0Xabed等。1、整型數(shù)2.2.2基本數(shù)據(jù)類型整型數(shù)默認類型為int型。如123456789、-456等。如果想表示一個長整型數(shù),由需要在數(shù)字后面加L或l(小寫)如123456789L、-456l都為長整型數(shù)。給byte和short型變量賦值時不要超出數(shù)據(jù)范圍。1、整型數(shù)2.2.2基本數(shù)據(jù)類型浮點型數(shù)可以用十進制和指數(shù)形式表示。浮點型常量默認為雙精度數(shù),如123.45為雙精度數(shù)。浮點數(shù)后加F或f表示單精度數(shù),浮點數(shù)后加D或d表示雙精度數(shù),如123.45F為單精度數(shù)。浮點數(shù)有8位有效數(shù)字,而雙精度為16位。十進制:如123.45、45.、和45.0等都是浮點型數(shù)。指數(shù)形式:又稱科學記數(shù)法。如1.23*105,在Java程序中可以寫成1.23E5。用E或e表示指數(shù)部分,E或e前面必須有數(shù)字,后面必須是一個整數(shù)。2、浮點型數(shù)2.2.2基本數(shù)據(jù)類型字符常量是一個字符,占兩個字節(jié)(16位),表示時用單引號引起,如’8’、’a’和’中’等。有些字符不能用本身的字符直接表示出來,如換行符,則可以用轉(zhuǎn)義字符來表示。轉(zhuǎn)義字符是用字符’\’和其它字符組合的字符,如表所示。轉(zhuǎn)義序列名稱Unicode\b退格鍵\u0008\tTab鍵\u0009\n換行符號\u000A\f進紙\u000C\r回車鍵\u000D\\反斜杠\u005C\’單引號\u0027\”雙引號\u00223、字符型數(shù)類型名變量定義符常量格式數(shù)據(jù)長度和范圍字節(jié)整型byte2、8、10、16進制1字節(jié),-27~27-1短整型short2、8、10、16進制2字節(jié),-215~215-1基本整型int2、8、10、16進制4字節(jié),-231~231-1長整型long2、8、10、16進制8字節(jié),-263~263-1單精度浮點型float小數(shù)點格式、科學計數(shù)法4字節(jié),1.4e-45~3.4028235e38、-3.4028235e38~-1.4e-452.2.2基本數(shù)據(jù)類型4、布爾型數(shù)布爾型數(shù)又稱邏輯型數(shù),它只有兩個常量:true和false,用于表示“真”和“假”。數(shù)據(jù)類型用下方表格表示。類型名變量定義符常量格式數(shù)據(jù)長度和范圍雙精度浮點型double小數(shù)點格式、科學計數(shù)法8字節(jié),4.9e-324~1.7976931348623157e308、-1.7976931348623157e308~-4.9e-324字符型char單引號擴起2字節(jié),Unicode字符布爾型boolean

1字節(jié),true和false2.2.2基本數(shù)據(jù)類型4、布爾型數(shù)2.2.3基本類型數(shù)據(jù)的輸入輸出程序運行時,需要從輸入設(shè)備中讀取數(shù)據(jù);程序處理完數(shù)據(jù)后,應(yīng)將結(jié)果輸出到輸出設(shè)備。所以程序應(yīng)具備輸入、輸出功能。1、輸入可以利用Scanner類的對象及其方法進行基本數(shù)據(jù)類型數(shù)據(jù)的輸入。輸入時應(yīng)該先創(chuàng)建Scanner類的對象。創(chuàng)建Scanner對象的方法:Scannerinput=newScanner(System.in);輸出數(shù)據(jù)時使用:System.out.println(輸出的數(shù)據(jù));2.2.3基本類型數(shù)據(jù)的輸入輸出【例2.2】輸入10名學生的數(shù)學成績(百分制),計算平均分(保留小數(shù)點后兩位數(shù)字)。Example10_02.java1、輸入2.2.3基本類型數(shù)據(jù)的輸入輸出類型方法bytenextByte()shortnextShort()intnextInt()longnextLong()booleannextBoolean()floatnextFloat()doublenextDouble()1、輸入利用Scanner類中的方法可以從鍵盤讀入基本類型的數(shù)據(jù),如表2.3。2.2.3基本類型數(shù)據(jù)的輸入輸出使用下面兩個方法可以從鍵盤獲得一個字符。第一種方法,利用Scanner類的next()方法讀取字符串,再從串中取出字符。Scannersc=newScanner(System.in);Strings=sc.next();charc=s.charAt(0);1、輸入2.2.3基本類型數(shù)據(jù)的輸入輸出第二種方法,利用System類in屬性直接調(diào)用read()方法讀入字符。charc;try{c=(char)System.in.read();}catch(Excptione){}1、輸入2.2.3基本類型數(shù)據(jù)的輸入輸出輸出基本類型的數(shù)據(jù)可以用System.out中方法:print、println和printf。調(diào)用print()方法時必須帶且只能帶有一個基本數(shù)據(jù)類型的參數(shù),它輸出數(shù)據(jù)后不換行。調(diào)用println()方法時可以不帶參數(shù),如果不帶參數(shù)則輸出一個換行;如果帶參數(shù)只能帶一個基本數(shù)據(jù)類型的參數(shù),輸出參數(shù)的值并換行。2、輸出2.2.3基本類型數(shù)據(jù)的輸入輸出如果用print()或println()一次輸出多個數(shù)據(jù),則應(yīng)將多個數(shù)據(jù)變成一個數(shù)據(jù)后再調(diào)用這兩個方法輸出。如語句

System.out.println(”AverageScore=”+average);用print()寫成等價語句:System.out.print(“AverageScore=“);System.out.print(average);System.out.print(“\n”);或最后一條語句寫成:System.out.println();2、輸出2.2.3基本類型數(shù)據(jù)的輸入輸出printf()用于有格式的數(shù)據(jù)輸出。它的使用方法:printf(格式控制字符串,輸出項表列);%d:輸出int型數(shù)據(jù)。%c:輸出char型數(shù)據(jù)。%f:輸出浮點型數(shù)據(jù),小數(shù)部分最多保留6位。%s:輸出字符串型數(shù)據(jù)??梢栽O(shè)置輸出數(shù)據(jù)的寬度,格式如下:%md:輸出int型數(shù)據(jù)占m位。%m.nf:輸出浮點型數(shù)據(jù)占m位,小數(shù)點后保留n位數(shù)字?!案袷娇刂谱址庇善胀ㄗ址透袷娇刂平M成。普通字符原樣輸出,格式控制字符主要有下面的字符:2、輸出C目錄ONTENTS2.2基本數(shù)據(jù)類型2.3運算符和表達式2.4小結(jié)2.1標識符與關(guān)鍵字2.3.1算術(shù)運算符表2.5

算術(shù)算符運算符含義示例結(jié)果+加3+47-減3-4-1*乘3*412/除1.0/2.01/20.50%求余20%322.3.1算術(shù)運算符求余結(jié)果按a%b=a-a/b*b計算。例如: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é)論:余數(shù)的符號取決于前面的數(shù)的符號。

2.3.1算術(shù)運算符算術(shù)運算符中還有使變量增1或減1的運算:++、--運算符在變量前稱為前綴運算,運算符在變量后稱后綴運算,如:++var或var--。前綴和后綴對變量本身都是加1或減1,但運算過程不同。如下:intx=10,y;y=++x;intx=10,y;y=x++;2.3.2

關(guān)系運算符關(guān)系運算是一種比較運算,用于比較兩個量大小關(guān)系的運算。關(guān)系運算符有6種:==、!=、>、>=、<、<=(前兩個優(yōu)先級低)如:x+y>=a*b、i==j+k

關(guān)系運算的結(jié)果是邏輯值。

關(guān)系算符的結(jié)合性是從左向右。2.3.3邏輯運算符邏輯運算是一種連接運算,可以將多個關(guān)系表達式連接成一個表達式。按優(yōu)先級從高到低有:!(一元邏輯非)、&&、||如數(shù)學不等式“a<x<=b”寫成Java表達式:a<x&&x<=b

再如數(shù)學不等式“x>y或a<b”,寫成Java表達式:x>y||a<b!的結(jié)合性從右向左,&&和||的結(jié)合性從左向右。2.3.4位運算符位運算符有七個:

&(位與)、|(位或)、^(位異或)、~(位非)、<<(位左移)、>>(位右移)、>>>(用零擴展的右移)。(1)位與運算對應(yīng)的二進制位按位進行與運算。如a=102、b=59,則a&b=34,運算過程如下所示:

01100110

(a)&00111011

(b)

00100010

2.3.4位運算符(2)位或運算對應(yīng)的二進制位按位進行或運算。如a=102、b=59,則a|b=127,運算過程如下所示:01100110(a)^00111011

(b)

01011101

2.3.4位運算符(3)位異或運算對應(yīng)的二進制位按位進行異或運算。異或運算是取不同,當對應(yīng)位不同時為1,相同時為0。如a=102、b=59,則a^b=93,運算過程如下所示:

01100110

(a)^00111011

(b)

01011101

2.3.4位運算符(4)位非運算對應(yīng)的二進制位按位取反運算。如a=102,則~a=-103運算過程如下所示:~01100110

(a)10011001

數(shù)據(jù)在計算機內(nèi)部是用補碼表示的,高位為1表示負數(shù)。2.3.4位運算符(5)位左移運算將一個數(shù)的各個二進位順序往左移動若干位,移出的位舍棄,右側(cè)空出位補0。如a=102、n=3,則a<<n=816,運算過程如下所示:

將a往左移n位,相當于a*2n。移位運算比乘2運算快。

01100110<<3(a)01100110000

2.3.4位運算符(6)位右移運算將一個數(shù)的各個二進位順序往右移動若干位,移出的位舍棄,左側(cè)空出位補0。如a=102、n=3,則a>>n=12,運算過程如下所示:將a往右移n位,相當于a/2n。移位運算比除2運算快。01100110

>>3(a)01100110

2.3.4位運算符(7)用零擴展的位右移運算用零擴展的右移位運算符移位時,空出高位用0補充,而>>運算則用原來的高位值被充。下圖說明>>>和>>的區(qū)別。如inta=-102,則a>>3=-13,而a>>>3=536870899。2.3.5賦值運算符數(shù)學中的“=”在Java語言中稱為賦值運算符。賦值運算符的語法形式:“=”左側(cè)一定是一個變量,它可以將表達式的值賦給變量。如:賦值運算符與算術(shù)運算符和移位運算符結(jié)合可以得到自反賦值運算符。如:+=、-=、*=、/=、%=、>>=、>>>=、<<=、&=、^=、|=等。變量=表達式x=y+z表達式:x*=y+z等價于:x=x*(y+z)2.3.6條件運算符條件運算符“?:”是一個三目運算符。它的語法形式:關(guān)系或邏輯表達式?表達式1:表達式2如果“關(guān)系或條邏輯表達式”的值為true,則整個表達式的值就是“表達式1”的值,否則就是“表達式2”的值。有些情況下,可以用條件運算符代替if-else語句。01OPTION02OPTION03OPTION04OPTION2.3.7其他運算符其他運算符包括:new、instanceof、()、[]和.等。new運算符用于為數(shù)組分配內(nèi)存和調(diào)用構(gòu)造方法創(chuàng)建對象;instanceof運算符用于判斷一個對象是否是一個類的實例;“()”用于表達式和方法定義與調(diào)用;“[]”是下標運算符,用于定義數(shù)組和訪問數(shù)組元素;“.”是分量運算符,可以通過該運算符訪問對象中的成員。05OPTION2.3.8

表達式1、表達式由操作數(shù)和運算符組成表達式。使用的運算符不同,構(gòu)成的表達式不同。010203040506有6類表達式算術(shù)運算表達式關(guān)系運算表達式邏輯運算表達式位運算表達式

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論