如何在Java中使用運(yùn)算符?針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名與空間、虛擬空間、營銷軟件、網(wǎng)站建設(shè)、邵原網(wǎng)站維護(hù)、網(wǎng)站推廣。按照操作符的用法,我們可以分為以下幾類:
算術(shù)運(yùn)算符
賦值運(yùn)算符
自增和自減運(yùn)算符
邏輯運(yùn)算符
關(guān)系運(yùn)算符
位運(yùn)算符
不用擔(dān)心,它們就是些符號而已,幫我們處理操作數(shù)據(jù)的。下面用代碼實(shí)例,一一來說明這些運(yùn)算符的用法。
1. 算術(shù)運(yùn)算符
算術(shù)運(yùn)算符,就是針對數(shù)值變量的加、減、乘、除、取余的算術(shù)操作:
加 :+
減:-
乘:*
除:/
取余:%
public class OperatorsDemo { public static void main(String[] args) { int num1 = 100; int num2 = 20; //加 System.out.println("num1 + num2: " + (num1 + num2) ); //減 System.out.println("num1 - num2: " + (num1 - num2) ); //乘 System.out.println("num1 * num2: " + (num1 * num2) ); //除 System.out.println("num1 / num2: " + (num1 / num2) ); //取余 System.out.println("num1 % num2: " + (num1 % num2) ); } }
輸出結(jié)果:
num1 + num2: 120 num1 - num2: 80 num1 * num2: 2000 num1 / num2: 5 num1 % num2: 0
2. 賦值運(yùn)算符
與大部分編程語言相同,Java使用'='運(yùn)算符來進(jìn)行賦值操作。這種操作會將右邊的計(jì)算結(jié)果(稱為右值)賦給左邊的變量。Java 中賦值運(yùn)算符有:
= (num2 = num1 )
+= (num2 += num1 等價(jià) num2 = num2 + num1)
-= (num2 -= num1 等價(jià) num2 = num2 - num1)
*= (num2 *= num1 等價(jià) num2 = num2 * num1)
/= (num2 /= num1 等價(jià) num2 = num2 / num1)
%= (num2 %= num1 等價(jià) num2 = num2 % num1)
public class OperatorsDemo { public static void main(String[] args) { int num1 = 10; int num2 = 20; num2 = num1; System.out.println("= Output: "+num2); num2 += num1; System.out.println("+= Output: "+num2); num2 -= num1; System.out.println("-= Output: "+num2); num2 *= num1; System.out.println("*= Output: "+num2); num2 /= num1; System.out.println("/= Output: "+num2); num2 %= num1; System.out.println("%= Output: "+num2); } }
結(jié)果輸出:
= Output: 10 += Output: 20 -= Output: 10 *= Output: 100 /= Output: 10 %= Output: 0
3. 自增和自減運(yùn)算符
自增和自減運(yùn)算符,只操作一個變量,是變量的值發(fā)生改變。
num++ (等價(jià) num = num + 1)自增,主要針對數(shù)值變量,使自身變量的值加1。
num—(等價(jià) num = num -1)自減,主要針對數(shù)值變量,使身變量的值減去1。
public class OperatorsDemo { public static void main(String[] args) { int num1=100; int num2=200; num1++; num2--; System.out.println("num1++ is: "+num1); System.out.println("num2-- is: "+num2); } }
結(jié)果輸出:
num1++ is: 101 num2-- is: 199
4. 邏輯運(yùn)算符
邏輯運(yùn)算符,顧名思義用于邏輯判斷,運(yùn)算的結(jié)果為boolean 類型的值,即 true 或者 false。邏輯勻運(yùn)算符有
邏輯運(yùn)算符 | 邏輯關(guān)系 |
---|---|
&& | 與 |
` | |
! | 非 |
b1 && b2:如果b1和b2都為真,b1 && b2將返回true,否則返回false
b1 || b2:如果b1和b2都是假,將返回false,否則返回true。
!b1:將返回與b1相反的值,如果b1為false,則返回true;如果b1為true,則返回false
public class OperatorsDemo { public static void main(String[] args) { boolean b1 = true; boolean b2 = false; System.out.println("b1 && b2: " + (b1&&b2)); System.out.println("b1 || b2: " + (b1||b2)); System.out.println("!(b1 && b2): " + !(b1&&b2)); } }
輸出結(jié)果:
b1 && b2: false b1 || b2: true !(b1 && b2): true
邏輯短路:
在Java中,邏輯運(yùn)算符支持短路操作,一旦能夠明確表達(dá)整個表達(dá)式的值,我們就不需要計(jì)算表達(dá)式的余下部分了。比如我們需要判斷一個對象不為空且它的某個方法返回值不為空,我們就可以這樣判斷:
if (object != null && object.someFunction() != null) { // do something. }
如果object為空,第一部分表達(dá)式object != null會返回false,那么不管&&運(yùn)算符后面的表達(dá)式object.someFunction() != null的結(jié)果如何,最終的值都為false。編譯器會自動將這部分運(yùn)算進(jìn)行優(yōu)化,不會執(zhí)行object.someFunction() != null。
5. 關(guān)系運(yùn)算符
用來比較兩個變量數(shù)據(jù)的大小,返回boolean的值,即 true 或者 false
關(guān)系操作符包括:
關(guān)系運(yùn)算符 | 關(guān)系 |
---|---|
> | 大于 |
< | 小于 |
== | 等于 |
!= | 不等于 |
>= | 大于等于 |
<= | 小于等于 |
'=='和'!='適用于所有類型的值和對象(即基本類型變量和引用類型變量)。
'>'、'<'、'>='和'<='不適用于布爾類型的值,因?yàn)樗鼈冎挥衪rue或false,大于和小于并無實(shí)際意義。
public class OperatorsDemo { public static void main(String[] args) { int num1 = 10; int num2 = 50; if (num1==num2) { System.out.println("num1 and num2 are equal"); } else{ System.out.println("num1 and num2 are not equal"); } if( num1 != num2 ){ System.out.println("num1 and num2 are not equal"); } else{ System.out.println("num1 and num2 are equal"); } if( num1 > num2 ){ System.out.println("num1 is greater than num2"); } else{ System.out.println("num1 is not greater than num2"); } if( num1 >= num2 ){ System.out.println("num1 is greater than or equal to num2"); } else{ System.out.println("num1 is less than num2"); } if( num1 < num2 ){ System.out.println("num1 is less than num2"); } else{ System.out.println("num1 is not less than num2"); } if( num1 <= num2){ System.out.println("num1 is less than or equal to num2"); } else{ System.out.println("num1 is greater than num2"); } } }
輸出結(jié)果:
num1 and num2 are not equal num1 and num2 are not equal num1 is not greater than num2 num1 is less than num2 num1 is less than num2 num1 is less than or equal to num2
6. 位運(yùn)算符
位運(yùn)算符面向的運(yùn)算對象是二進(jìn)制的“位”,可應(yīng)用于整數(shù)類型(int),長整型(long),短整型(short),字符型(char),和字節(jié)型(byte)等類型,運(yùn)算時(shí)會將其對應(yīng)Bit位(0或者是1)進(jìn)行布爾代數(shù)運(yùn)算或者移動操作。
位運(yùn)算符 | 計(jì)算邏輯 |
---|---|
& | 與運(yùn)算:對于某一位,只要兩個操作數(shù)都為1,則該位的結(jié)果為1,否則為0 |
` | ` |
^ | 異或運(yùn)算:對于某一位,如果兩個操作數(shù)不相同,則該位的結(jié)果為1,否則為0 |
~ | 非運(yùn)算:按位補(bǔ)運(yùn)算符翻轉(zhuǎn)操作數(shù)的每一位 |
<< | 二進(jìn)制左移運(yùn)算符:左操作數(shù)按位左移右操作數(shù)指定的位數(shù) |
>> | 二進(jìn)制右移運(yùn)算符:左操作數(shù)按位右移右操作數(shù)指定的位數(shù) |
>>> | 二進(jìn)制右移補(bǔ)零操作符:左操作數(shù)的值按右操作數(shù)指定的位數(shù)右移,移動得到的空位以零填充 |
計(jì)算邏輯的描述讀起來有些晦澀,我們通過例子可以更清晰得了解位運(yùn)算符如何進(jìn)行計(jì)算。假設(shè)如果x等于60;y等于13;則它們的二進(jìn)制表示,以及位運(yùn)算的結(jié)果如下所示:
x = 0011 1100 y = 0000 1101 ----------------- x & y = 0000 1100 x | y = 0011 1101 x ^ y = 0011 0001 ~x = 1100 0011 x << 2 = 1111 0000 x >> 2 = 0000 1111 x >>> 2 = 0000 1111
注意>>和>>>的區(qū)別:
右移位運(yùn)算符>>,若操作的值為正,則在高位插入0;若值為負(fù),則在高位插入1;
右移補(bǔ)零操作符>>>,無論正負(fù),都在高位插入0。
> 位運(yùn)算不理解,先跳過。實(shí)際用到的時(shí)候,可以再去研究。
7. 運(yùn)算符的優(yōu)先級
運(yùn)算符優(yōu)先級決定一個表達(dá)式里術(shù)語的分組。它影響著一個表達(dá)式如何求值。一定的運(yùn)算符比其他運(yùn)算符擁有更高的優(yōu)先級。
例如:乘法運(yùn)算符比加法運(yùn)算符有更高的優(yōu)先級,表達(dá)式1 + 5 * 6,根據(jù)運(yùn)算符的優(yōu)先級,編譯器會先計(jì)算5 * 6,再計(jì)算30 + 1,最終得到結(jié)果31。
各類各運(yùn)算符的優(yōu)先級從大到小如下:
., (), [] 單目+(右到左結(jié)合), 單目-(右到左結(jié)合), ++, --, ~, ! *, /,% +(左到右結(jié)合), -(左到右結(jié)合) >>, <<, >>> <, <=, >, >= ==, != & | ^ && || ?: =, +=等賦值運(yùn)算符
不用擔(dān)心這么復(fù)雜的優(yōu)先級列表,絕大多數(shù)情況下,表達(dá)式本身就很容易看得出優(yōu)先級,比如賦值運(yùn)算肯定是優(yōu)先級最低的。在對優(yōu)先級不太明確的情況下,我們使用括號就能按照我們希望的方式來改變優(yōu)先級,所以不需要對運(yùn)算符優(yōu)先級做太多記憶。
8.其他運(yùn)算符
三運(yùn)運(yùn)算符:
Java中的條件運(yùn)算符是一個三元運(yùn)算符,它的形式如下:
booleanExpression ? valueWhenTrue : valueWhenFalse
如果布爾表達(dá)式值為true,則表達(dá)式的值為valueWhenTrue的值,否則為valueWhenFalse的值。
比如我們要計(jì)算x的絕對值,可以通過如下代碼實(shí)現(xiàn):
if (x >= 0) { y = x; } else { y = -x; }
通過三元運(yùn)算符,只需要一條語句y = x >= 0 ? x : -x;就可以完成,更為簡潔。
類型轉(zhuǎn)換運(yùn)算符:
我們在很多情況下會用到類型轉(zhuǎn)換。在適當(dāng)?shù)臅r(shí)候,Java也會根據(jù)數(shù)據(jù)類型將數(shù)據(jù)類型自動轉(zhuǎn)為另一種。比如我們?yōu)閒loat變量賦一個整數(shù)值,編譯器會將int轉(zhuǎn)化為float賦給變量。
但是在很多情況下,Java并不能判斷我們是否需要進(jìn)行類型轉(zhuǎn)換,這時(shí)就需要類型轉(zhuǎn)化運(yùn)算符,它允許我們顯式地進(jìn)行類型轉(zhuǎn)換,如:
int a = 10; long b = (long) a; long c = (long) 100;
關(guān)于如何在Java中使用運(yùn)算符問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。
網(wǎng)頁標(biāo)題:如何在Java中使用運(yùn)算符-創(chuàng)新互聯(lián)
新聞來源:http://www.rwnh.cn/article34/csepse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、靜態(tài)網(wǎng)站、App設(shè)計(jì)、網(wǎng)站制作、ChatGPT、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容