Java的運(yùn)算符.doc_第1頁
Java的運(yùn)算符.doc_第2頁
Java的運(yùn)算符.doc_第3頁
Java的運(yùn)算符.doc_第4頁
Java的運(yùn)算符.doc_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

Java的運(yùn)算符Java的運(yùn)算符可分為4類:算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符和位運(yùn)算符。 1.算術(shù)運(yùn)算符 Java的算術(shù)運(yùn)算符分為一元運(yùn)算符和二元運(yùn)算符。一元運(yùn)算符只有一個(gè)操作數(shù);二元運(yùn)算符有兩個(gè)操作數(shù),運(yùn)算符位于兩個(gè)操作數(shù)之間。算術(shù)運(yùn)算符的操作數(shù)必須是數(shù)值類型。 (1)一元運(yùn)算符: 一元運(yùn)算符有:正(+)、負(fù)()、加1(+)和減1()4個(gè)。 加1、減1運(yùn)算符只允許用于數(shù)值類型的變量,不允許用于表達(dá)式中。加1、減1運(yùn)算符既可放在變量之前(如i),也可放在變量之后(如i),兩者的差別是:如果放在變量之前(如i),則變量值先加1或減1,然后進(jìn)行其他相應(yīng)的操作(主要是賦值操作);如果放在變量之后(如i),則先進(jìn)行其他相應(yīng)的操作,然后再進(jìn)行變量值加1或減1。 例如: int i=6,j,k,m,n; j = +i; /取原值,即j=6 k = -i; /取負(fù)值,即k=-6 m = i+; /先m=i,再i=i+1,即m=6,i=7 m = +i; /先i=i+1,再m=i,即i=7,m=7 n = j-; /先n=j,再j=j-1,即n=6,j=5 n = -j; /先j=j-1,再n=j,即j=5,n=5 在書寫時(shí)還要注意的是:一元運(yùn)算符與其前后的操作數(shù)之間不允許有空格,否則編譯時(shí)會出錯(cuò)。 (2)二元運(yùn)算符 二元運(yùn)算符有:加(+)、減()、乘(*)、除()、取余(%)。其中+、*、完成加、減、乘、除四則運(yùn)算,%是求兩個(gè)操作數(shù)相除后的余數(shù)。 %求余操作舉例: a % b = a (a / b) * b 取余運(yùn)算符既可用于兩個(gè)操作數(shù)都是整數(shù)的情況,也可用于兩個(gè)操作數(shù)都是浮點(diǎn)數(shù)(或一個(gè)操作數(shù)是浮點(diǎn)數(shù))的情況。當(dāng)兩個(gè)操作數(shù)都是浮點(diǎn)數(shù)時(shí),例如7.6 % 2.9時(shí),計(jì)算結(jié)果為:7.6 2 * 2.9 = 1.8。 當(dāng)兩個(gè)操作數(shù)都是int類型數(shù)時(shí),a%b的計(jì)算公式為: a % b = a (int)(a / b) * b 當(dāng)兩個(gè)操作數(shù)都是long類型(或其他整數(shù)類型)數(shù)時(shí),a%b的計(jì)算公式可以類推。 當(dāng)參加二元運(yùn)算的兩個(gè)操作數(shù)的數(shù)據(jù)類型不同時(shí),所得結(jié)果的數(shù)據(jù)類型與精度較高(或位數(shù)更長)的那種數(shù)據(jù)類型一致。 例如: 7 / 3 /整除,運(yùn)算結(jié)果為2 7.0 / 3 /除法,運(yùn)算結(jié)果為2.33333,即結(jié)果與精度較高的類型一致 7 % 3 /取余,運(yùn)算結(jié)果為1 7.0 % 3 /取余,運(yùn)算結(jié)果為1.0 -7 % 3 /取余,運(yùn)算結(jié)果為-1,即運(yùn)算結(jié)果的符號與左操作數(shù)相同 7 % -3 /取余,運(yùn)算結(jié)果為1,即運(yùn)算結(jié)果的符號與左操作數(shù)相同 2.關(guān)系運(yùn)算符 關(guān)系運(yùn)算符用于比較兩個(gè)數(shù)值之間的大小,其運(yùn)算結(jié)果為一個(gè)邏輯類型的數(shù)值。關(guān)系運(yùn)算符有六個(gè):等于(=)、不等于(!=)、大于()、大于等于(=)、小于()、小于等于(=)。 例如: 9 = 8.8 /運(yùn)算結(jié)果為true A a /運(yùn)算結(jié)果為true,因字符A的Unicode編碼值小于字符a的 要說明的是,對于大于等于(或小于等于)關(guān)系運(yùn)算符來說,只有大于和等于兩種關(guān)系運(yùn)算都不成立時(shí)其結(jié)果值才為false,只要有一種(大于或等于)關(guān)系運(yùn)算成立其結(jié)果值即為true。例如,對于9 = 8,9既不小于8也不等于8,所以9 = 9,因9等于9,所以9 = 9的運(yùn)算結(jié)果為true。 3.邏輯運(yùn)算符 邏輯運(yùn)算符要求操作數(shù)的數(shù)據(jù)類型為邏輯型,其運(yùn)算結(jié)果也是邏輯型值。邏輯運(yùn)算符有:邏輯與(&)、邏輯或(|)、邏輯非(!)、邏輯異或()、邏輯與(&)、邏輯或(|)。 真值表是表示邏輯運(yùn)算功能的一種直觀方法,其具體方法是把邏輯運(yùn)算的所有可能值用表格形式全部羅列出來。Java語言邏輯運(yùn)算符的真值表如下: 邏輯運(yùn)算符的真值表 A B A&B A|B !A AB A&B A|B false false false false true false false false true false false true false true false true false true false true true true false true true true true true false false true true 前兩列是參與邏輯運(yùn)算的兩個(gè)邏輯變量,共有4種可能,所以表2.5共有4行。后6列分別是6個(gè)邏輯運(yùn)算符在邏輯變量A和邏輯變量B取不同數(shù)值時(shí)的運(yùn)算結(jié)果值。 要說明的是,兩種邏輯與(&和&)的運(yùn)算規(guī)則基本相同,兩種邏輯或(|和|)的運(yùn)算規(guī)則也基本相同。其區(qū)別是:&和|運(yùn)算是把邏輯表達(dá)式全部計(jì)算完,而&和|運(yùn)算具有短路計(jì)算功能。所謂短路計(jì)算,是指系統(tǒng)從左至右進(jìn)行邏輯表達(dá)式的計(jì)算,一旦出現(xiàn)計(jì)算結(jié)果已經(jīng)確定的情況,則計(jì)算過程即被終止。對于&運(yùn)算來說,只要運(yùn)算符左端的值為false,則因無論運(yùn)算符右端的值為true或?yàn)閒alse,其最終結(jié)果都為false。所以,系統(tǒng)一旦判斷出&運(yùn)算符左端的值為false,則系統(tǒng)將終止其后的計(jì)算過程;對于 | 運(yùn)算來說,只要運(yùn)算符左端的值為true,則因無論運(yùn)算符右端的值為true或?yàn)閒alse,其最終結(jié)果都為true。所以,系統(tǒng)一旦判斷出| 運(yùn)算符左端的值為true,則系統(tǒng)將終止其后的計(jì)算過程。 例如,有如下邏輯表達(dá)式: (i=1) & (i=1的計(jì)算結(jié)果為false后,系統(tǒng)馬上得出該邏輯表達(dá)式的最終計(jì)算結(jié)果為false,因此,系統(tǒng)不繼續(xù)判斷i=1) & (i)、左移()。 位運(yùn)算的位與(&)、位或(|)、位非()、位異或()與邏輯運(yùn)算的相應(yīng)操作的真值表完全相同,其差別只是位運(yùn)算操作的操作數(shù)和運(yùn)算結(jié)果都是二進(jìn)制整數(shù),而邏輯運(yùn)算相應(yīng)操作的操作數(shù)和運(yùn)算結(jié)果都是邏輯值。 位運(yùn)算示例 運(yùn)算符 名稱 示例 說明 & 位與 x&y 把x和y按位求與 | 位或 x|y 把x和y按位求或 位非 x 把x按位求非 位異或 xy 把x和y按位求異或 右移 xy 把x的各位右移y位 左移 x 右移 xy 把x的各位右移y位,左邊填0 舉例說明: (1)有如下程序段: int x = 64; /x等于二進(jìn)制數(shù)的01000000 int y = 70; /y等于二進(jìn)制數(shù)的01000110 int z = x&y /z等于二進(jìn)制數(shù)的01000000 即運(yùn)算結(jié)果為z等于二進(jìn)制數(shù)01000000。位或、位非、位異或的運(yùn)算方法類同。 (2)右移是將一個(gè)二進(jìn)制數(shù)按指定移動(dòng)的位數(shù)向右移位,移掉的被丟棄,左邊移進(jìn)的部分或者補(bǔ)0(當(dāng)該數(shù)為正時(shí)),或者補(bǔ)1(當(dāng)該數(shù)為負(fù)時(shí))。這是因?yàn)檎麛?shù)在機(jī)器內(nèi)部采用補(bǔ)碼表示法,正數(shù)的符號位為0,負(fù)數(shù)的符號位為1。例如,對于如下程序段: int x = 70; /x等于二進(jìn)制數(shù)的01000110 int y = 2; int z = xy /z等于二進(jìn)制數(shù)的00010001 即運(yùn)算結(jié)果為z等于二進(jìn)制數(shù)00010001,即z等于十進(jìn)制數(shù)17。 對于如下程序段: int x = -70; /x等于二進(jìn)制數(shù)的11000110 int y = 2; int z = xy /z等于二進(jìn)制數(shù)的11101110 即運(yùn)算結(jié)果為z等于二進(jìn)制數(shù)11101110,即z等于十進(jìn)制數(shù)-18。要透徹理解右移和左移操作,讀者需要掌握整數(shù)機(jī)器數(shù)的補(bǔ)碼表示法。 (3)0填充的右移()是不論被移動(dòng)數(shù)是正數(shù)還是負(fù)數(shù),左邊移進(jìn)的部分一律補(bǔ)0。 5.其他運(yùn)算符 (1)賦值運(yùn)算符與其他運(yùn)算符的簡捷使用方式 賦值運(yùn)算符可以與二元算術(shù)運(yùn)算符、邏輯運(yùn)算符和位運(yùn)算符組合成簡捷運(yùn)算符,從而可以簡化一些常用表達(dá)式的書寫。 賦值運(yùn)算符與其他運(yùn)算符的簡捷使用方式 運(yùn)算符 用法 等價(jià)于 說明 += s+=i s=s+i s,i是數(shù)值型 -= s-=i s=s-i s,i是數(shù)值型 *= s*=i s=s*i s,i是數(shù)值型 /= s/=i s=s/i s,i是數(shù)值型 %= s%=i s=s%i s,i是數(shù)值型 &= a&=b a=a&b a,b是邏輯型或整型 |= a|=b a=a|b a,b是邏輯型或整型 = A=b a=ab a,b是邏輯型或整型 = s=i s=s= s=i s=si s,i是整型 = s=i s=si s,i是整型 (2)方括號和圓括號()運(yùn)算符 方括號是數(shù)組運(yùn)算符,方括號中的數(shù)值是數(shù)組的下標(biāo),整個(gè)表達(dá)式就代表數(shù)組中該下標(biāo)所在位置的元素值。 圓括號()運(yùn)算符用于改變表達(dá)式中運(yùn)算符的優(yōu)先級。 (3)字符串加(+)運(yùn)算符 當(dāng)操作數(shù)是字符串時(shí),加(+)運(yùn)算符用來合并兩個(gè)字符串;當(dāng)加(+)運(yùn)算符的一邊是字符串,另一邊是數(shù)值時(shí),機(jī)器將自動(dòng)將數(shù)值轉(zhuǎn)換為字符串,這種情況在輸出語句中很常見。如對于如下程序段: int max = 100; System.out.println(max = +max); 計(jì)算機(jī)屏幕的輸出結(jié)果為:max = 100,即此時(shí)是把變量max中的整數(shù)值100轉(zhuǎn)換成字符串100輸出的。 (4)條件運(yùn)算符(?:) 條件運(yùn)算符(?:)的語法形式為: ? : 條件運(yùn)算符的運(yùn)算方法是:先計(jì)算的值,當(dāng)?shù)闹禐閠rue時(shí),則將的值作為整個(gè)表達(dá)式的值;當(dāng)?shù)闹禐閒alse時(shí),則將的值作為整個(gè)表達(dá)式的值。如: int a=1,b=2,max; max = ab?a:b; /max等于2 (5)強(qiáng)制類型轉(zhuǎn)換符 強(qiáng)制類型轉(zhuǎn)換符能將一個(gè)表達(dá)式的類型強(qiáng)制轉(zhuǎn)換為某一指定數(shù)據(jù)類型,其語法形式為: () (6)對象運(yùn)算符instanceof 對象運(yùn)算符instanceof用來測試一個(gè)指定對象是否是指定類(或它的子類)的實(shí)例,若是則返回true,否則返回false。 (7)點(diǎn)運(yùn)算符 點(diǎn)運(yùn)算符“.”的功能有兩個(gè):一是引用類中成員,二是指示包的層次等級。 6.運(yùn)算符的優(yōu)先級 左”表示其運(yùn)算次序?yàn)閺挠蚁蜃蟆S摇北硎酒溥\(yùn)算次序?yàn)閺淖笙蛴遥坝乙韵掳磧?yōu)先級從高到低的次序列出Ja

溫馨提示

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

評論

0/150

提交評論