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

下載本文檔

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

文檔簡(jiǎn)介

1第3章Java語(yǔ)言基礎(chǔ)2通過(guò)本章的學(xué)習(xí),主要掌握以下知識(shí)點(diǎn):

Java使用的數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型轉(zhuǎn)換

由鍵盤(pán)輸入數(shù)據(jù)

運(yùn)算符與表達(dá)式

本章的重點(diǎn):由鍵盤(pán)輸入數(shù)據(jù)本章的難點(diǎn):數(shù)據(jù)類(lèi)型轉(zhuǎn)換表達(dá)式及運(yùn)算符的優(yōu)先級(jí)、結(jié)合性

3本章主要介紹編寫(xiě)Java程序必須掌握的若干語(yǔ)言基礎(chǔ)知識(shí),包括數(shù)據(jù)類(lèi)型、變量、常量、表達(dá)式等。掌握這些基礎(chǔ)知識(shí),是編寫(xiě)正確Java程序的前提條件。43.1數(shù)據(jù)類(lèi)型

在程序設(shè)計(jì)中,數(shù)據(jù)是程序的必要組成部分,也是程序處理的對(duì)象。不同的數(shù)據(jù)有不同的數(shù)據(jù)類(lèi)型,不同的數(shù)據(jù)類(lèi)型有不同的數(shù)據(jù)結(jié)構(gòu)、不同的存儲(chǔ)方式,并且參與的運(yùn)算也不相同。通常計(jì)算機(jī)語(yǔ)言將數(shù)據(jù)按其性質(zhì)進(jìn)行分類(lèi),每一類(lèi)稱(chēng)為一種數(shù)據(jù)類(lèi)型(datatype)。數(shù)據(jù)類(lèi)型定義了數(shù)據(jù)的性質(zhì)、取值范圍、存儲(chǔ)方式以及對(duì)數(shù)據(jù)所能進(jìn)行的運(yùn)算和操作。5

Java中的數(shù)據(jù)類(lèi)型分為兩大類(lèi),一類(lèi)是基本數(shù)據(jù)類(lèi)型(primitivetypes),另一類(lèi)是引用類(lèi)型(referencetypes)?;緮?shù)據(jù)類(lèi)型有整型(integral)、浮點(diǎn)型(floting)、邏輯型(logical)和字符型(textual);引用類(lèi)型包括類(lèi)(class)、數(shù)組(array)和接口(interface)。6基本數(shù)據(jù)類(lèi)型所占內(nèi)存的大小是固定的,與軟硬件環(huán)境無(wú)關(guān)。存放的是數(shù)據(jù)值本身;引用數(shù)據(jù)類(lèi)型在內(nèi)存中存放的是指向該數(shù)據(jù)的地址,不是數(shù)據(jù)本身,由多個(gè)基本數(shù)據(jù)構(gòu)成。稱(chēng)為復(fù)合數(shù)據(jù)類(lèi)型,有的數(shù)據(jù)也稱(chēng)作指針。注意!這個(gè)指針與C++是不同的,僅表示數(shù)據(jù)存放的地址,而不能直接對(duì)物理地址進(jìn)行操作。7

Java定義了4類(lèi)共8種基本類(lèi)型,它們的分類(lèi)及關(guān)鍵字如下:整型:byte,short,int,long。浮點(diǎn)型:float,double。邏輯型:boolean。字符型:char。81.整型整數(shù)有正整數(shù)、零、負(fù)整數(shù),其含義與數(shù)學(xué)中的含義相同。Java定義了四種表示整數(shù)的類(lèi)型:字節(jié)型(byte)、短整型(short)、整型(int)、長(zhǎng)整型(long)。每種整型的數(shù)據(jù)都是帶符號(hào)位的。Java的每種數(shù)據(jù)類(lèi)型都對(duì)應(yīng)—個(gè)默認(rèn)的數(shù)值,使得這種數(shù)據(jù)類(lèi)型變量的取值總是確定的,體現(xiàn)了其安全性。它們的特性如表3.1所示。類(lèi)型數(shù)據(jù)位范圍byte(字節(jié)型)8-128~127,即-27~27-1Short(短整型)16-32768~32767,即-215~215-1int(整型)32-2147483648~2147483647,即-231~231-1long(長(zhǎng)整型)64-9223372036854775808~9223372036854775807,即-263~263-l9表3.1Java的四種整型102.浮點(diǎn)型Java用浮點(diǎn)型表示數(shù)學(xué)中的實(shí)數(shù),也就是說(shuō)既有整數(shù)部分又有小數(shù)部分的數(shù)。浮點(diǎn)數(shù)有兩種表示方式。Java的浮點(diǎn)型有單精度浮點(diǎn)(float)和雙精度浮點(diǎn)(double)兩種。它們的寬度和范圍如表3.2所示。類(lèi)型數(shù)據(jù)位范圍float(單精度浮點(diǎn))321.4E-45~3.4E+38double(雙精度浮點(diǎn))644.9E-324~1.8E+30811表3.2Java的兩種浮點(diǎn)型123.邏輯型邏輯型(boolean)用來(lái)表示邏輯值,也稱(chēng)為布爾型。它只有true和false兩個(gè)取值。其中,true代表“真”,false代表“假”,true和false不能轉(zhuǎn)換成數(shù)字表示形式。

134.字符型字符型(char)用來(lái)存儲(chǔ)字符。Java語(yǔ)言是用Unicode編碼表達(dá)的字符,在內(nèi)存中占兩個(gè)字節(jié)。由于Java的字符類(lèi)型采用了Unicode這種新的國(guó)際標(biāo)準(zhǔn)編碼方案,因而便于東方字符和西方字符的處理。因此,與其他語(yǔ)言相比,Java處理多語(yǔ)種的能力大大加強(qiáng)。14(1)字符型數(shù)據(jù)聲明只包含單個(gè)字符,用’’括起。(2)所有ASCII字符都可以用單引號(hào)括起來(lái),’*’,如若要得到數(shù)值,可以強(qiáng)制轉(zhuǎn)化(int)’*’(3)UNICODE字符集中的字符取值為0-65535,如果要取得該值表示的字符,要強(qiáng)制轉(zhuǎn)化intc=20320;chars=(char)c;數(shù)據(jù)類(lèi)型關(guān)鍵字占用字節(jié)數(shù)默認(rèn)數(shù)值取值范圍布爾型boolean1falsetrue,false字節(jié)型byte10-128~127短整型short20-32768~32767整型int40-2147483648~2147483647長(zhǎng)整型long80L-9223372036854775808~9223372036854775807單精度浮點(diǎn)型float40.0F1.4×10-45~3.4×1038雙精度型double80.0D4.9×10-324~1.8×10308字符型char2’\u0000’’\u0000’~’\uffff’15現(xiàn)將Java的4類(lèi)8種基本數(shù)據(jù)類(lèi)型總結(jié)歸納成表3.3。表3.3Java的基本數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型所在的類(lèi)最小值代碼最大值代碼byteJava.lang.ByteByte.MIN_VALUEByte.MAX_VALUEshortJava.lang.ShortShort.MIN_VALUEShort.MAX_VALUEintJava.lang.IntegerInteger.MIN_VALUEInteger.MAX_VALUElongJava.lang.LongLong.MIN_VALUELong.MAX_VALUEfloatJava.lang.FloatFloat.MIN_VALUEFloat.MAX_VALUEdoubleJava.lang.DoubleDouble.MIN_VALUEDouble.MAX_VALUE16為了使用上的方便Java提供了數(shù)值型數(shù)據(jù)的最大值與最小值的標(biāo)識(shí)符及常量值。如表3.4所示。表3.4數(shù)值型常量的特殊值代碼173.2關(guān)鍵字與標(biāo)識(shí)符1.關(guān)鍵字關(guān)鍵字(keyword)是Java中具有特殊含義的字符序列,因此Java不允許用戶對(duì)關(guān)鍵字賦予其他的含義。Java定義的關(guān)鍵字如表3.5所示。abstractbooleanbreakbytecasecatchcharclasscontinuedefaultdodoubleelseextendsfalsefinalfinallyfloatforifimplementsimportinstanceofintinterfacelongnativenewnullpackageprivateprotectedpublicreturnshortstaticsuperswitchsynchronizedthisthrowthrowstransienttruetryvoidvolatilewhile18表3.5Java定義的關(guān)鍵字192.標(biāo)識(shí)符Java用標(biāo)識(shí)符(identifier)表示變量名、類(lèi)名和方法名。也就是說(shuō),任何一個(gè)變量、常量、方法、對(duì)象和類(lèi)都需要有名字,這些名字就是標(biāo)識(shí)符。標(biāo)識(shí)符可以由編程者自由指定,但是需要遵循一定的語(yǔ)法規(guī)定。標(biāo)識(shí)符要滿足如下的規(guī)定:(1)標(biāo)識(shí)符可以由字母、數(shù)字和下劃線(_)、美元符號(hào)($)組合而成;(2)標(biāo)識(shí)符必須以字母、下劃線或美元符號(hào)開(kāi)頭,不能以數(shù)字開(kāi)頭。203.3常量常量存儲(chǔ)的是在程序中不能被修改的固定值,也就是說(shuō)常量是在程序運(yùn)行的整個(gè)過(guò)程中保持其值不改變的量。Java中的常量也是有類(lèi)型的,包括整型、浮點(diǎn)型、邏輯型、字符型和字符串型常量。211.整型常量整型常量可以用來(lái)給整型變量賦值,整型常量可以采用十進(jìn)制、八進(jìn)制和十六進(jìn)制表示。

2.浮點(diǎn)型常量浮點(diǎn)型常量表示的是可以含有小數(shù)部分的數(shù)值常量。根據(jù)占用內(nèi)存長(zhǎng)度的不同,可以分為一般浮點(diǎn)(單精度)常量和雙精度浮點(diǎn)常量?jī)煞N。其中,單精度常量后跟一個(gè)字母f或F,雙精度常量后跟一個(gè)字母d或D。雙精度常量后的d或D可以省略。22轉(zhuǎn)義符是一些有特殊含義、很難用一般方式來(lái)表達(dá)的字符,如回車(chē)、換行等。為了表達(dá)清楚這些特殊字符,Java中引入了一些特別的定義。所有的轉(zhuǎn)義符都用反斜線(\)開(kāi)頭,后面跟著一個(gè)字符來(lái)表示某個(gè)特定的轉(zhuǎn)義符,如表3.6所示。轉(zhuǎn)義字符所代表的意義\f換頁(yè)(Formfeed),走紙到下一頁(yè)。\b退格(Backspace),后退一格。\n換行(Newline),將光標(biāo)移到下一行的開(kāi)始。\r回車(chē)(Carriagereturn),將光標(biāo)移到當(dāng)前行的行首,但不移到下一行。\t橫向跳格(Tab),將光標(biāo)移到下一個(gè)制表符位置。\\反斜線字符(Backslash),輸出一個(gè)反斜杠。\'單引號(hào)字符(Singlequote),輸出一個(gè)單引號(hào)。\"雙引號(hào)字符(Doublequote),輸出一個(gè)雙引號(hào)。\uxxxx1到4位十六進(jìn)制數(shù)(xxxx)所表示的unicode字符。\ddd1到3位八制數(shù)(ddd)所表示的unicode字符,范圍在八進(jìn)制的000~377之間。23表3.6常用的轉(zhuǎn)義字符換行\(zhòng)n與回車(chē)\r的區(qū)別24計(jì)算機(jī)出現(xiàn)前的老式打印機(jī),每秒鐘打10個(gè)字符,打完一行用時(shí)0.2秒,兩個(gè)字符的時(shí)間,這時(shí)候有新字符要輸出就會(huì)丟失。研究人員加了兩個(gè)字符:回車(chē):打印頭定位左邊界換行:向下移一行Unix系統(tǒng):只有換行\(zhòng)nWindows系統(tǒng):換行回車(chē)\n\r,Mac系統(tǒng):只有回車(chē)\r換行\(zhòng)n與回車(chē)\r的區(qū)別25Unix/Mac系統(tǒng)下的文件在Windows下打開(kāi),所有文字會(huì)變一行;Windows系統(tǒng)下的文件在Unix/Mac系統(tǒng)下打開(kāi),每行結(jié)尾可能會(huì)多一個(gè)“^M”265.字符串常量字符串常量是用雙引號(hào)括起的一串若干個(gè)字符(可以是0個(gè))。字符串中可以包括轉(zhuǎn)義符。標(biāo)志字符串開(kāi)始和結(jié)束的雙引號(hào)必須在同一行。6.常量的聲明常量聲明的形式與變量聲明基本一樣,只需用關(guān)鍵字final標(biāo)識(shí),通常final寫(xiě)在最前面。例如,

finalintMAX=10;

finalfloatPI=3.14f;273.4變量在程序中使用的值大多是需要經(jīng)常變化的數(shù)據(jù),用常數(shù)值表示顯然是不夠的,因此每一種計(jì)算機(jī)語(yǔ)言都使用變量(variable)來(lái)存儲(chǔ)數(shù)據(jù),變量的值在程序中是可以改變的,使用變量的原則是“先聲明后使用”,即變量在使用前必須先聲明。281.變量聲明計(jì)算機(jī)程序是通過(guò)內(nèi)存變量來(lái)操縱內(nèi)存中的數(shù)據(jù),所以程序在使用任何變量之前首先應(yīng)該在該變量和內(nèi)存單元之間建立聯(lián)系,這個(gè)過(guò)程稱(chēng)為變量的聲明或稱(chēng)變量的定義。

變量具有三個(gè)基本要素:名字、類(lèi)型和值。29

變量聲明的格式如下:<類(lèi)型><變量名>[=<初值>][,<變量名>[=<初值>]……]

例如,

inti,j,k;在聲明變量的同時(shí)也可以對(duì)變量進(jìn)行初始化,即賦初值。例如,

inti=0;302.變量的賦值當(dāng)聲明一個(gè)變量并沒(méi)有賦初值或需要重新對(duì)變量賦值時(shí),就需要使用賦值語(yǔ)句。Java語(yǔ)言的賦值語(yǔ)句同其他計(jì)算機(jī)語(yǔ)言的賦值語(yǔ)相同,其格式為:變量名=值下面舉例來(lái)說(shuō)明。

booleanb=true;//聲明boolean型變量并賦值

intx,y=8;//聲明int型變量

floatf=2.718f;//聲明float型變量并賦值

doubled=3.1415;//聲明double型變量并賦值

charc;//聲明char型變量

c=’\u0031’;//為char型變量賦值

x=12;//為int型變量賦值313.5數(shù)據(jù)類(lèi)型轉(zhuǎn)換Java的數(shù)據(jù)類(lèi)型在定義時(shí)就已經(jīng)決定,因此不能隨意轉(zhuǎn)換成其他的數(shù)據(jù)類(lèi)型,但Java容許用戶有限度地做類(lèi)型轉(zhuǎn)換處理,這就是所謂的數(shù)據(jù)類(lèi)型轉(zhuǎn)換,簡(jiǎn)稱(chēng)類(lèi)型轉(zhuǎn)換。類(lèi)型轉(zhuǎn)換就是在Java程序中,常數(shù)或變量從一種數(shù)據(jù)類(lèi)型轉(zhuǎn)換到另一種數(shù)據(jù)類(lèi)型。

32一、數(shù)值型不同類(lèi)型數(shù)據(jù)的轉(zhuǎn)換由于數(shù)值型也分為不同的類(lèi)型,所以數(shù)值型數(shù)據(jù)也有類(lèi)型轉(zhuǎn)換問(wèn)題。1.自動(dòng)類(lèi)型轉(zhuǎn)換在程序中已經(jīng)定義好的數(shù)值型的變量,若是想以另一種類(lèi)型表示時(shí),Java會(huì)在下列條件同時(shí)成立時(shí),自動(dòng)進(jìn)行數(shù)據(jù)類(lèi)型的轉(zhuǎn)換:(1)轉(zhuǎn)換前的數(shù)據(jù)類(lèi)型與轉(zhuǎn)換后的類(lèi)型兼容。(2)轉(zhuǎn)換后的數(shù)據(jù)類(lèi)型的表示范圍比轉(zhuǎn)換前的類(lèi)型大。

33【例3.1】數(shù)據(jù)類(lèi)型的自動(dòng)轉(zhuǎn)換。//app3_1.java類(lèi)型自動(dòng)轉(zhuǎn)換publicclassapp3_1{publicstaticvoidmain(Stringargs[]){ inta=155; floatb=21.0f; System.out.println(”a=”+a+”,b=”+b);//輸出a,b的值

System.out.println(”a/b=”+(a/b));//輸出a/b的值

}}輸出結(jié)果為:a=155,b=21.0a/b=7.3809524342.強(qiáng)制類(lèi)型轉(zhuǎn)換如果要將較長(zhǎng)的數(shù)據(jù)轉(zhuǎn)換成較短的數(shù)據(jù)時(shí),就要進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換。強(qiáng)制類(lèi)型轉(zhuǎn)換的格式如下:(欲轉(zhuǎn)換的數(shù)據(jù)類(lèi)型)變量名35【例3.2】整型與浮點(diǎn)數(shù)據(jù)類(lèi)型的自動(dòng)轉(zhuǎn)換。//app3_2.java整數(shù)與浮點(diǎn)數(shù)的類(lèi)型轉(zhuǎn)換publicclassapp3_2{publicstaticvoidmain(Stringargs[]){inta=155; intb=9; floatg,h; System.out.println(”a=”+a+”,b=”+b);//輸出a,b的值

g=a/b;//將a除以b的結(jié)果放在g中

System.out.println(”a/b=”+g+”\n”);//輸出g的值

System.out.println(”a=”+a+”,b=”+b);//輸出a,b的值

h=(float)a/b;//先將a強(qiáng)制轉(zhuǎn)換成float類(lèi)型后再參加運(yùn)算

System.out.println(”a/b=”+h);//輸出h的值

}}36程序執(zhí)行結(jié)果如下:a=155,b=9a/b=17.0a=155,b=9a/b=17.22222137二、字符串型數(shù)據(jù)與整型數(shù)據(jù)相互轉(zhuǎn)換1.字符串轉(zhuǎn)換成數(shù)值型數(shù)據(jù)數(shù)字字符串型數(shù)據(jù)轉(zhuǎn)換成byte、short、int、float、double、long等數(shù)據(jù)類(lèi)型,可以分別使用表3.7所提供的Byte、Short、Integer、Float、Double、Long類(lèi)的parseXXX方法。轉(zhuǎn)換的方法功能說(shuō)明Byte.parseByte()將字符串轉(zhuǎn)換為字節(jié)型數(shù)據(jù)Short.parseShort()將字符串轉(zhuǎn)換為短整型數(shù)據(jù)Integer.parseInt()將字符串轉(zhuǎn)換為整型數(shù)據(jù)Long.parseLong()將字符串轉(zhuǎn)換為長(zhǎng)整型數(shù)據(jù)Float.parseFloat()將字符串轉(zhuǎn)換為浮點(diǎn)型數(shù)據(jù)Double.parseDouble()將字符串轉(zhuǎn)換為雙精度型數(shù)據(jù)38表3.7字符串轉(zhuǎn)換成數(shù)值型數(shù)據(jù)的方法39例如:StringMyNumber="1234.567";//定義字符串型變量MyNumberfloatMyFloat=Float.parseFloat(MyNumber);403.6由鍵盤(pán)輸入數(shù)據(jù)在程序設(shè)計(jì)中,經(jīng)常需要從鍵盤(pán)上讀取數(shù)據(jù),這時(shí)就需要用戶從鍵盤(pán)輸入數(shù)據(jù),從而可以增加與用戶之間的交互。利用鍵盤(pán)輸入數(shù)據(jù),Java語(yǔ)言提供了二種輸入格式。41importjava.io.*;publicclassclass_name//類(lèi)名稱(chēng){publicstaticvoidmain(Stringargs[])throwsIOException{bufferedReaderbuf;Stringstr;……buf=newbufferedReader(newInputStreamReader(System.in));str=buf.readLine();……}}格式142【例3.3】從鍵盤(pán)輸入數(shù)據(jù)。//app3_3.java由鍵盤(pán)輸入字符串importjava.io.*;//加載java.io類(lèi)庫(kù)里的所有類(lèi)publicclassapp3_3{publicstaticvoidmain(Stringargs[])throwsIOException{BufferedReaderbuf;Stringstr;buf=newBufferedReader(newInputStreamReader(System.in));System.out.print(”請(qǐng)輸入字符串;”);str=buf.readLine();//將輸入的文字指定給字符串變量str存放

System.out.println(”您輸入的字符串是:”+str);//輸出字符串

}}43為了簡(jiǎn)化輸入操作,從JavaSE5版本開(kāi)始在java.util類(lèi)庫(kù)中新增了一個(gè)類(lèi)專(zhuān)門(mén)用于輸入操作的類(lèi)Scanner,可以使用該類(lèi)輸入一個(gè)對(duì)象,語(yǔ)句格式如下:importjava.util.*;publicclassclass_name//類(lèi)名稱(chēng){publicstaticvoidmain(String[]args){Scannerreader=newScanner(System.in);doublenum;

//聲明double型變量,也可聲明其他數(shù)值型變量

……num=reader.nextDouble();//調(diào)用reader對(duì)象的相應(yīng)方法,讀取鍵盤(pán)數(shù)據(jù)

……}}格式244【例3.6】利用Scanner類(lèi)從鍵盤(pán)輸入多個(gè)數(shù)據(jù)。//app3_6.java由鍵盤(pán)輸入多個(gè)數(shù)據(jù)importjava.util.*;//加載java.util類(lèi)庫(kù)里的所有類(lèi)publicclassapp3_6{publicstaticvoidmain(String[]args){intnum1;doublenum2;Scannerreader=newScanner(System.in);System.out.print("請(qǐng)輸入第一個(gè)數(shù):");

num1=reader.nextInt();System.out.print("請(qǐng)輸入第二個(gè)數(shù):");

num2=reader.nextDouble();System.out.println(num1+"*"+num2+"="+(num1*num2));}}453.7運(yùn)算符與表達(dá)式運(yùn)算符是用來(lái)表示某一種運(yùn)算的符號(hào),它指明了對(duì)操作數(shù)所進(jìn)行的運(yùn)算。按操作數(shù)的數(shù)目來(lái)分,可以有一元運(yùn)算符(如++)、二元運(yùn)算符(如+、>)和三元運(yùn)算符(如?:),它們分別對(duì)應(yīng)于一個(gè)、兩個(gè)和三個(gè)操作數(shù)。按照運(yùn)算符功能來(lái)分,基本的運(yùn)算符有下面幾類(lèi)。46算術(shù)運(yùn)算符+、-、*、/、%、++、--關(guān)系運(yùn)算符>、<、>=、<=、==、!=邏輯運(yùn)算符!、&&、||、&、|位運(yùn)算符>>、<<、>>>、&、|、^、~賦值運(yùn)算符=、及其擴(kuò)展賦值運(yùn)算符,如+=、/=等。條件運(yùn)算符?:其他運(yùn)算符號(hào)包括分量運(yùn)算符.、下標(biāo)運(yùn)算符[]、實(shí)例運(yùn)算符instanceof、內(nèi)存分配運(yùn)算符new、強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符(類(lèi)型)、方法調(diào)用運(yùn)算符()等。運(yùn)算符功能示例+加運(yùn)算a+b-減運(yùn)算a-b*乘運(yùn)算a*b/除運(yùn)算a/b%取模(求余)運(yùn)算a%b471.二元算術(shù)運(yùn)算符二元算術(shù)運(yùn)算符如表3.8所示。表3.8二元算術(shù)運(yùn)算符3.7.1算術(shù)運(yùn)算符運(yùn)算符功能示例+正值+a-負(fù)值-a++加1++a或a++--減1--a或a--482.一元算術(shù)運(yùn)算符一元算術(shù)運(yùn)算符如表3.9所示。表3.9一元算術(shù)運(yùn)算符49關(guān)系運(yùn)算符用于比較兩個(gè)值之間的大小,結(jié)果返回布爾類(lèi)型的值true或false,關(guān)系運(yùn)算符都是二元運(yùn)算符,如表3.10所示。3.7.2關(guān)系運(yùn)算符

運(yùn)算符功能示例>大于a>b>=大于或等于a>=b<小于a<b<=小于或等于a<=b==等于a==b!=不等于a!=b50表3.10關(guān)系運(yùn)算符51邏輯運(yùn)算與關(guān)系運(yùn)算的關(guān)系非常密切,關(guān)系運(yùn)算是運(yùn)算結(jié)果為布爾型量的運(yùn)算,而邏輯運(yùn)算是操作數(shù)與運(yùn)算結(jié)果都是布爾型量的運(yùn)算。邏輯運(yùn)算符如表3.11所示。3.7.3邏輯運(yùn)算符運(yùn)算符功能示例運(yùn)算規(guī)則&邏輯與a&b兩個(gè)操作數(shù)均為true時(shí),結(jié)果才為true。|邏輯或a|b兩個(gè)操作數(shù)均為false時(shí),結(jié)果才為false。!邏輯非(取反)!a將操作數(shù)取反。^異或a^b兩個(gè)操作數(shù)同真或同假時(shí),結(jié)果才為false。&&簡(jiǎn)潔與a&&b兩個(gè)操作數(shù)均為true時(shí),結(jié)果才為true。||簡(jiǎn)潔或a||b兩個(gè)操作數(shù)均為false時(shí),結(jié)果才為false。52表3.11邏輯運(yùn)算符53【例3.8】關(guān)系運(yùn)算符和邏輯運(yùn)算符的使用。//app3_8.java關(guān)系運(yùn)算符和邏輯運(yùn)算符的使用publicclassapp3_8{publicstaticvoidmain(String[]args){inta=25,b=7;booleanx=a<b;//x=falseSystem.out.println(”a<b=”+x);inte=3;booleany=a/e>5;//y=trueSystem.out.println(”x^y=”+(x^y));if(e!=0&b<0)System.out.println(”b/0=”+b/0);elseSystem.out.println(”a%e=”+a%e);intf=0;if(f!=0&&a/f>5)System.out.println(”a/f=”+a/f);elseSystem.out.println(”f=”+f);}}54其運(yùn)行結(jié)果為:a<b=falsex^y=truea%e=1f=0553.7.4位運(yùn)算符

位運(yùn)算符是對(duì)操作數(shù)以二進(jìn)制比特位為單位進(jìn)行的操作和運(yùn)算,Java中提供了如表3.12所示的位運(yùn)算符。運(yùn)算符功能示例運(yùn)算規(guī)則~按位取反~a將a按位取反。&按位與a&b將a和b按比特位相與。|按位或a|b將a和b按比特位相或。^按位異或a^b將a和b按比特位相異或。>>左移a>>b將a各比特位向右移b位。<<右移a<<b將a各比特位向左移b位。>>>0填充右移a>>>b將a各比特位向右移b位,左邊的空位一律填0。56表3.12位運(yùn)算符操作符和表達(dá)式57取反舉例:bytex=20;00010100~x=-21;11101011??這個(gè)二進(jìn)制碼為什么是-21?計(jì)算機(jī)機(jī)內(nèi)部負(fù)數(shù)是以補(bǔ)碼形式存放的。輸出時(shí)是取反加一。符號(hào)位不變11101011,取反10010100,加1為10010101,-21。

583.7.5賦值運(yùn)算符1.賦值運(yùn)算符關(guān)于賦值運(yùn)算符“=”,我們?cè)?.4節(jié)介紹變量的賦值時(shí)已經(jīng)簡(jiǎn)單提過(guò)。簡(jiǎn)單的賦值運(yùn)算是把一個(gè)表達(dá)式的值直接賦給一個(gè)變量或?qū)ο?,使用的賦值運(yùn)算符是“=”,其格式如下:變量或?qū)ο?表達(dá)式

賦值運(yùn)算符右端的表達(dá)式可以還是賦值表達(dá)式,形成連續(xù)賦值的情況。例如:a=b=c=8;

592.?dāng)U展賦值運(yùn)算符在賦值符“=”前加上其他運(yùn)算符,即構(gòu)成擴(kuò)展賦值運(yùn)算符,例如:a+=3等價(jià)于a=a+3。表3.13列出了Java中的擴(kuò)展賦值運(yùn)算符及等效的表達(dá)式。運(yùn)算符示

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論