java 运算符_详解Java表达式与运算符
課程導(dǎo)言
【變量的賦值與計(jì)算都離不開(kāi)表達(dá)式,表達(dá)式的運(yùn)算依賴(lài)于變量、常量和運(yùn)算符。本節(jié)課討論Java的表達(dá)式的構(gòu)成、常量的定義、運(yùn)算符的分類(lèi)及應(yīng)用。通過(guò)本課的學(xué)習(xí)你將掌握運(yùn)用表達(dá)式和運(yùn)算符完成變量賦值、條件判斷、數(shù)學(xué)運(yùn)算、邏輯運(yùn)算等功能操作】
在講述課程內(nèi)容之前,先看一個(gè)求圓面積的問(wèn)題。求圓面積的公式為;
其中S為圓面積,π為圓周率,r為半徑。
假設(shè)用程序來(lái)計(jì)算圓的面積,S、π、r均為變量,省略的乘號(hào)為運(yùn)算符,r的2次方可以描述為r*r。則上面的公式即為求圓面積的表達(dá)式。
結(jié)合上面的案例,本節(jié)課程分為三個(gè)小節(jié),第一小節(jié)探討不能修改的變量—常量;第二小節(jié)探討表達(dá)式的組成結(jié)構(gòu)及運(yùn)用;第三小節(jié)探討Java的基本運(yùn)算符,包括賦值運(yùn)算符、算術(shù)運(yùn)算符、關(guān)系運(yùn)算符和邏輯運(yùn)算符。
第一小節(jié) 不能修改的變量——常量
在求圓面積的表達(dá)式中,π為圓周率,它是一個(gè)不變的量,在程序運(yùn)行過(guò)程中不能被修改。常量同變量一樣,也占用存儲(chǔ)單元的空間。常量的不可修改性提高了程序的穩(wěn)定性,同時(shí)也提高了程序代碼的可維護(hù)性。例如,可以把π定義為常量,當(dāng)程序需要π參與運(yùn)算時(shí),直接調(diào)用定義的常量π即可。
在java語(yǔ)言中,定義常量的語(yǔ)法如下:
final 數(shù)據(jù)類(lèi)型 常量名稱(chēng) = 值;
其中,final是Java關(guān)鍵字,數(shù)據(jù)類(lèi)型可以是Java語(yǔ)言支持的任何數(shù)據(jù)類(lèi)型。
例如,下面的語(yǔ)句把圓周率定義為常量:
final double Pl = 3.14;
Java關(guān)鍵字是Java語(yǔ)言保留的一類(lèi)標(biāo)識(shí)符,它們用來(lái)標(biāo)識(shí)一種數(shù)據(jù)類(lèi)型或者程序的結(jié)構(gòu),Java關(guān)鍵字不能用于變量名、方法名、類(lèi)名等命名。
第二小節(jié) Java表達(dá)式
求圓面積的公式就是一個(gè)表達(dá)式,其中S、π、r為變量或常量,省略的乘號(hào)為運(yùn)算符,r的2次方可以描述為r*r。求圓面積的表達(dá)式為:
S =π* r *r;
表達(dá)式是由變量、常量和運(yùn)算符的組合,它執(zhí)行計(jì)算并返回計(jì)算結(jié)果。在表達(dá)式中運(yùn)算符作用的變量或常量稱(chēng)為操作數(shù)。在求圓面積的表達(dá)式中,乘號(hào)(*)為運(yùn)算符,π和r為操作數(shù)。
在一些復(fù)雜的運(yùn)算中,簡(jiǎn)單的表達(dá)式可以組合為復(fù)雜的表達(dá)式,其操作數(shù)本身可能就是一個(gè)表達(dá)式。例如:
(num1+num2)*(x+y)
上面的表達(dá)式中,運(yùn)算符乘號(hào)(*)兩邊的操作數(shù)(num1+num2)和(x+y)本身就是一個(gè)表達(dá)式。表達(dá)式的計(jì)算結(jié)果一般為數(shù)值,如果表達(dá)式是一個(gè)關(guān)系表達(dá)式或邏輯表達(dá)式,表達(dá)式會(huì)返回一個(gè)布爾值,即真或假。
根據(jù)運(yùn)算符的不同,可以把表達(dá)式分為賦值表達(dá)式、算術(shù)表達(dá)式、關(guān)系表達(dá)式和邏輯表達(dá)式。賦值表達(dá)式用于把等號(hào)右邊的操作數(shù)賦值給等號(hào)左邊的變量;算術(shù)表達(dá)式用于數(shù)值運(yùn)算;關(guān)系表達(dá)式用于條件判斷;邏輯表達(dá)式用于邏輯操作。
第三小節(jié) Java運(yùn)算符
運(yùn)算符用于連接表達(dá)式的操作數(shù),并對(duì)操作數(shù)執(zhí)行運(yùn)算。例如,表達(dá)式num1+num2,其操作數(shù)是num1和num2,運(yùn)算符是”+”。在java語(yǔ)言中,運(yùn)算符可分為5種類(lèi)型:算術(shù)運(yùn)算符、賦值運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符。
根據(jù)操作數(shù)的不同,運(yùn)算符又分為單目運(yùn)算符、雙目運(yùn)算符和三目運(yùn)算符。單目運(yùn)算符只有一個(gè)操作數(shù),雙目運(yùn)算符有兩個(gè)操作數(shù),三目運(yùn)算符則有三個(gè)操作數(shù)。位運(yùn)算符涉及到二進(jìn)制位的運(yùn)算,在java 程序中運(yùn)用不是很多,因此下面主要介紹算術(shù)運(yùn)算符、賦值運(yùn)算符、關(guān)系運(yùn)算符和邏輯運(yùn)算符。
(1)算術(shù)運(yùn)算符
算術(shù)運(yùn)算符用在算術(shù)表達(dá)式中,其作用和數(shù)學(xué)中的運(yùn)算符相同,下表列出了Java語(yǔ)言支持的算術(shù)運(yùn)算符。
算術(shù)運(yùn)算符一般用于數(shù)值運(yùn)算,可對(duì)操作數(shù)進(jìn)行加減乘除、取余、自增和自減操作。
加減乘除、取余運(yùn)算符比較容易理解。下面重點(diǎn)說(shuō)說(shuō)自增和自減運(yùn)算符。
自增自減是單目運(yùn)算符,只需要一個(gè)操作數(shù)參加運(yùn)算。例如:a++、++a、a--、--a等。其中,a是操作數(shù),++是自增運(yùn)算符,--是自減運(yùn)算符,自增和自減運(yùn)算符即可以放在變量的前面,也可以放在變量的后面,例如++a、 a++。
自增(++):將變量的值加1,分前綴式(如++a)和后綴式(如a++)。前綴式是先加1再使用;后綴式是先使用再加1。
自減(--):將變量的值減1,分前綴式(如--a)和后綴式(如a--)。前綴式是先減1再使用;后綴式是先使用再減1。
(2)賦值運(yùn)算符
賦值運(yùn)算符是雙目運(yùn)算符,用在賦值表達(dá)式中。它的作用是將運(yùn)算符右邊操作數(shù)的值賦給運(yùn)算符左邊的變量。下表列出了Java語(yǔ)言支持的賦值運(yùn)算符。
賦值運(yùn)算符分為兩類(lèi),一類(lèi)是簡(jiǎn)單賦值,一類(lèi)是復(fù)合賦值。簡(jiǎn)單賦值是直接把運(yùn)算符右邊操作數(shù)的值賦給運(yùn)算符左邊的變量,運(yùn)算符有“=”;復(fù)合賦值運(yùn)算符復(fù)合賦值是先執(zhí)行運(yùn)算符指定的運(yùn)算,然后再將運(yùn)算結(jié)果賦值給運(yùn)算符左邊的變量,復(fù)合賦值運(yùn)算符有“+=、-=、*=、/=、%=”。
簡(jiǎn)單賦值運(yùn)算符非常容易明白和理解。下面重點(diǎn)說(shuō)說(shuō)復(fù)合賦值運(yùn)算符“+=”操作,其它復(fù)合賦值運(yùn)算符操作原理同“+=”運(yùn)算符操作原理相同,這里就不再一一講述了。
復(fù)合賦值運(yùn)算符“+=”操作執(zhí)行過(guò)程如下:
1) 將運(yùn)算符右側(cè)的操作數(shù),與運(yùn)算符左側(cè)的操作數(shù)(變量值)執(zhí)行相加操作;
2) 相加的結(jié)果賦值給運(yùn)算符左側(cè)的變量。
例如下面語(yǔ)句:
int num = 10;
num+= 20;
聲明的變量num初始值為10,然后執(zhí)行num+= 20賦值操作,其操作過(guò)程是變量num先與數(shù)值20相加,相加的結(jié)果是30,然后再將30賦值給變量num,此時(shí)變量num的值為30。
(3)關(guān)系運(yùn)算符
關(guān)系運(yùn)算符也是雙目運(yùn)算符,用于關(guān)系表達(dá)式。關(guān)系運(yùn)算符對(duì)兩個(gè)操作數(shù)進(jìn)行比較,并返回比較結(jié)果,比較結(jié)果的值為一個(gè)布爾值(true或false)。下表列出了Java語(yǔ)言支持的關(guān)系運(yùn)算符,表中例子假設(shè)A和B不相等,并且其A小于B。
關(guān)系運(yùn)算符用于比較兩個(gè)操作數(shù)的大小,兩個(gè)操作數(shù)共有六種比較方式。
第一種比較方式是判斷兩個(gè)操作數(shù)是否相等,用運(yùn)算符“==”進(jìn)行運(yùn)算,如果兩個(gè)操作數(shù)相等,比較結(jié)果返回true,否則返回false。
第二種比較方式是判斷兩個(gè)操作數(shù)是否不相等,用運(yùn)算符“!=”進(jìn)行運(yùn)算,如果兩個(gè)操作數(shù)不相等,比較結(jié)果返回true,否則返回false。
第三種比較方式是判斷運(yùn)算符左邊的操作數(shù)是否大于運(yùn)算符右邊的操作數(shù),用運(yùn)算符“〉”進(jìn)行運(yùn)算,如果左邊的操作數(shù)比右邊的操作數(shù)大,比較結(jié)果返回true,否則返回false。
第四種比較方式是判斷運(yùn)算符左邊的操作數(shù)是否小于運(yùn)算符右邊的操作數(shù),用運(yùn)算符“<”進(jìn)行運(yùn)算,如果左邊的操作數(shù)比右邊的操作數(shù)小,比較結(jié)果返回true,否則返回false。
第五和第六種比較方式是判斷運(yùn)算符左邊的操作數(shù)是否大于等于或小于等于右邊的操作數(shù),用運(yùn)算符“〉=和<=”進(jìn)行運(yùn)算,如果比較結(jié)果滿足要求,則返回true,否則返回false。
(4)邏輯運(yùn)算符
邏輯運(yùn)算符連接兩個(gè)關(guān)系表達(dá)式或布爾變量,用于解決多個(gè)關(guān)系表達(dá)式的組合判斷問(wèn)題,返回的運(yùn)算結(jié)果為布爾值。例如,在數(shù)學(xué)中,表示一個(gè)數(shù)值的范圍時(shí),經(jīng)常用不等式來(lái)表述,假設(shè)一個(gè)數(shù)值取值范圍為0到100,設(shè)該數(shù)值為x,不等式0100兩個(gè)關(guān)系表達(dá)式,然后用邏輯運(yùn)算符進(jìn)行連接。下表列出了Java語(yǔ)言支持的邏輯運(yùn)算符,表中假設(shè)布爾變量A為真,變量B為假。
邏輯運(yùn)算符“&&”是雙目運(yùn)算符,用于判斷兩個(gè)關(guān)系表達(dá)式或布爾變量是否都為真,只有兩個(gè)表達(dá)式的返回結(jié)果都為真時(shí),運(yùn)算結(jié)果為真,否則運(yùn)算結(jié)果為假。
邏輯運(yùn)算符“||”是雙目運(yùn)算符,用于判斷兩個(gè)關(guān)系表達(dá)式或布爾變量是否有一個(gè)為真,如果有一個(gè)為真,返回結(jié)果為true,否則返回false。
邏輯運(yùn)算符“!”是單目運(yùn)算符,用于取反關(guān)系表達(dá)式返回的值。例如:對(duì)于關(guān)系表達(dá)式a>b,如果a> b為真,取反后為false,如果a> b為假,取反后為true。
Java運(yùn)算符的優(yōu)先級(jí)
和數(shù)學(xué)中的運(yùn)算符一樣,Java運(yùn)算符也存在優(yōu)先級(jí)關(guān)系。在Java表達(dá)式中,優(yōu)先級(jí)高的運(yùn)算符先參與運(yùn)算,優(yōu)先級(jí)低的運(yùn)算符后參與運(yùn)算。下表給出了運(yùn)算符的優(yōu)先級(jí),表中優(yōu)先級(jí)欄,數(shù)字越小優(yōu)先級(jí)越高,每個(gè)運(yùn)算符用中文頓號(hào)分割。
表中結(jié)合性指運(yùn)算符結(jié)合的順序,通常都是從左到右。從右到左的運(yùn)算符最典型的就是數(shù)值前面的正負(fù)號(hào),例如3+-4,則意義為3加-4,符號(hào)首先和運(yùn)算符右側(cè)的內(nèi)容結(jié)合。
■ 課程小結(jié)
1、常量是相對(duì)于變量來(lái)說(shuō)的,變量在程序運(yùn)行過(guò)程中,其值可以被修改,而常量是不允許被修改的。常量多用于固定不變的值,如圓周率、數(shù)值、光速等。同變量一樣,常量也可以用標(biāo)識(shí)符命名,并占用存儲(chǔ)單元空間。在表達(dá)式中,數(shù)值可以直接參與運(yùn)算,參與運(yùn)算的數(shù)值也稱(chēng)為字面常量。
2、表達(dá)式同數(shù)學(xué)中的算式相同,是由變量、常量和運(yùn)算符組合而成的。最簡(jiǎn)單的表達(dá)式僅由一個(gè)運(yùn)算符和一個(gè)操作數(shù)構(gòu)成,較復(fù)雜的表達(dá)式則由多個(gè)運(yùn)算符以及多個(gè)操作數(shù)構(gòu)成。表達(dá)式必須返回計(jì)算結(jié)果,計(jì)算結(jié)果或?yàn)橹祷驗(yàn)椴紶栔怠?/p>
3、運(yùn)算符對(duì)參與的操作數(shù)進(jìn)行運(yùn)算,根據(jù)參與運(yùn)算的操作數(shù)的個(gè)數(shù)可把運(yùn)算符分為單目運(yùn)算符、雙目運(yùn)算符和三目運(yùn)算符。當(dāng)一個(gè)表達(dá)式包含多個(gè)運(yùn)算符時(shí),就需要考慮運(yùn)算符的優(yōu)先級(jí),優(yōu)先級(jí)高的運(yùn)算符先參與運(yùn)算,優(yōu)先級(jí)低的運(yùn)算符后參與運(yùn)算。在實(shí)際的開(kāi)發(fā)中,不需要特別去記憶運(yùn)算符的優(yōu)先級(jí)別,也不要刻意的使用運(yùn)算符的優(yōu)先級(jí)別,對(duì)于不清楚優(yōu)先級(jí)的地方使用小括號(hào)輔助進(jìn)行優(yōu)先級(jí)管理。
■ 思考與練習(xí)
1、常量和變量有什么不同?
2、表達(dá)式中的數(shù)值是常量嗎?
3、算術(shù)表達(dá)式返回的計(jì)算結(jié)果是數(shù)值還是布爾值?
4、a>b屬于什么類(lèi)型的表達(dá)式?其返回結(jié)果是數(shù)值還是布爾值?
5、假設(shè)變量a的值為5,執(zhí)行a+=10操作后,變量a的值是多少?
6、請(qǐng)給出表達(dá)式a+=b*2的執(zhí)行順序。
總結(jié)
以上是生活随笔為你收集整理的java 运算符_详解Java表达式与运算符的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: javascript进制转换_JavaS
- 下一篇: springboot urlresour