Java運算符——通過示例學習Java編程(6)

作者:CHAITANYA SINGH

來源:https://www.koofun.com/pro/kfpostsdetail?kfpostsid=17

運算符是表示動作的字符,例如+是表示加法的算術運算符。

Java中的運算符類型有七大類:基本算術運算符妈嘹、賦值運算符、自增運算符和自減運算符暂筝、邏輯運算符兰绣、比較(關系)運算符击困、位運算符荒叼、三元運算符

1)基本算術運算符

基本算術運算符是:+轿偎, - ,*被廓,/,%萝玷,其中+用于加法嫁乘,-用于減法,*用于乘法球碉,/用于除法蜓斧,%用于計算兩個操作數(shù)相除后的余數(shù)。

注意:%運算符操作后返回余數(shù)睁冬,例如:10%5將返回0

算術運算符的例子

public class ArithmeticOperatorDemo?{

???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)?);

???}

}

輸出:

num1?+?num2:?120

num1?-?num2:?80

num1?*?num2:?2000

num1?/?num2:?5

num1?%?num2:?0

2)賦值運算符

java中的賦值運算符是:=挎春,+=, -=豆拨,*=直奋,/=,%=

num2 = num1將變量num1的值賦給變量施禾。

num2 += num1等于num2 = num2 + num1

num2 -= num1等于num2 = num2 - num1

num2 *= num1等于num2 = num2 * num1

num2 /= num1等于num2 = num2 / num1

num2 %= num1等于num2 = num2 % num1

賦值運算符的示例

public class AssignmentOperatorDemo?{

???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);

???}

}

輸出

=?Output:?10

+=?Output:?20

-=?Output:?10

*=?Output:?100

/=?Output:?10

%=?Output:?0

3)自增和自減運算符

++和 --

num++ 相當于num = num+1;

num-- 相當于num = num-1;

自增和自減運算符的示例

public class AutoOperatorDemo?{

???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);

???}

}

輸出

num1++?is:?101

num2--?is:?199

4)邏輯運算符

邏輯運算符與二進制變量一起使用脚线,它們主要用于條件語句和循環(huán)語句中的評估條件。

java中的邏輯運算符是:&&弥搞、|| 邮绿、!

假設我們有兩個布爾變量b1和b2。

如果b1和b2都為true攀例,則b1 && b2將返回true船逮,否則返回false。

如果b1和b2都為false粤铭,則b1 || b2將返回false挖胃,否則返回true。

!b1將返回b1的反面,這意味著如果b1為false則!b1返回true冠骄,如果b1為true則!b1返回false伪煤。

邏輯運算符的示例

public class LogicalOperatorDemo?{

???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));

???}

}

輸出:

b1?&&?b2:?false

b1?||?b2:?true

!(b1?&&?b2):?true

5)比較(關系)運算符

我們在Java中有六個關系運算符:==,!=凛辣,>抱既,<,>=扁誓,<=

如果左側和右側都相等防泵,則==返回true

!=如果左側不等于運算符的右側,則返回true蝗敢。

>如果左側大于右側捷泞,則返回true。

<如果左側小于右側寿谴,則返回true锁右。

如果左側大于或等于右側,則==返回true讶泰。

如果左側小于或等于右側咏瑟,則<=返回true。

關系運算符的示例

注意:這個例子使用的if-else語句是我們下一個教程要講解的內容痪署,如果你發(fā)現(xiàn)它很難理解码泞,那么請先跳過去,等讀完了下一個教程后再返回來看這個例子狼犯。

public class RelationalOperatorDemo?{

???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");

??????}

???}

}

輸出:

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)按位運算符

有六個按位運算符:&余寥,|,^悯森,?宋舷,<<,>>

num1?=?11;?/*?等于00001011?*/?

num2?=?22;?/*?等于00010110?*/

按位運算符執(zhí)行逐位處理呐馆。

num1和num2比較num1和num2的相應位肥缔,如果兩個位相等則生成1,否則返回0汹来。在我們的例子中它將返回:2续膳,這是00000010,因為在num1和num2的二進制形式中只有第二個最后的位匹配收班。

num1 | num2比較num1和num2的相應位坟岔,如果任一位為1,則生成1摔桦,否則返回0社付。在我們的例子中承疲,它將返回31,即00011111

num1 ^ num2比較num1和num2的相應位鸥咖,如果它們不相等則生成1燕鸽,否則返回0。在我們的例子中它將返回29啼辣,相當于00011101

~num1是一個補碼運算符啊研,它只是將位從0更改為1,將1更改為0鸥拧。在我們的示例中党远,它將返回-12摘能,其中8位等效于11110100

num1 << 2是左移位運算符焚辅,向左移動位应闯,丟棄最左邊的位铣猩,并將最右邊的位賦值為0,在我們的例子中輸出為44饶氏,相當于00101100

注意:在下面的示例中嘹狞,我們在此移位運算符的右側提供2赂蠢,這是位向左移動兩個位置的原因媳握。我們可以更改此數(shù)字碱屁,并且位將按運算符右側指定的位數(shù)移動。同樣適用于右側操作員蛾找。

num1 >> 2是右移位運算符,將位向右移動赵誓,丟棄最右位打毛,并將最左位的值賦值為0。在我們的例子中輸出為2俩功,相當于00000010

按位運算符的示例

public class BitwiseOperatorDemo?{

??public static void main(String?args[])?{

?????int num1?=?11;??/*?11?=?00001011?*/

?????int?num2?=?22;??/*?22?=?00010110?*/

?????int result?=?0;


?????result?=?num1?&?num2;???

?????System.out.println("num1?&?num2:?"+result);

?????result?=?num1?|?num2;???

?????System.out.println("num1?|?num2:?"+result);

?????result?=?num1?^?num2;???

?????System.out.println("num1?^?num2:?"+result);

?????result?=?~num1;???

?????System.out.println("~num1:?"+result);

?????result?=?num1?<<?2;???

?????System.out.println("num1?<<?2:?"+result);?result?=?num1?>>?2;???

?????System.out.println("num1?>>?2:?"+result);

??}

}

輸出:

num1?&?num2:?2

num1?|?num2:?31

num1?^?num2:?29

~num1:?-12

num1?<<?2:?44num1?>>?2:?2

7)三元運算符

此運算符計算布爾表達式并根據(jù)結果分配值幻枉。

句法:

1variable?num1?=?(expression)???value?iftrue:?value?iffalse;

如果表達式結果為true,則將冒號( : )之前的第一個值賦值給變量num1诡蜓,否則將第二個值賦值給變量num1熬甫。

三元運算符的例子

public class TernaryOperatorDemo?{

???public static void main(String?args[])?{

?????int num1,?num2;

?????num1?=?25;

?????/*?num1?is?not?equal?to?10?that's?why

??????*?the?second?value?after?colon?is?assigned

??????*?to?the?variable?num2

??????*/

?????num2?=?(num1?==?10)???100?:?200;

?????System.out.println(?"num2:?"+num2);

?????/*?num1?is?equal?to?25?that's?why

??????*?the?first?value?is?assigned

??????*?to?the?variable?num2

??????*/

?????num2?=?(num1?==?25)???100:?200;

?????System.out.println(?"num2:?"+num2);

???}

}

輸出

num2:?200

num2:?100

Java中的運算符優(yōu)先級

如果表達式具有多個運算符,則確定首先需要對哪個運算符求值蔓罚。操作符在頂部具有較高優(yōu)先級椿肩,在底部具有較低優(yōu)先級。

一元運算符:++???--???!???~

乘除法:????*???/???%

加減法:????+????-

移位:??????<<???>>

關系:??????>???>=???=???<=

平等:??????==???!=

按位AND?:??&

按位XOR?:??^

按位OR?:???|

邏輯AND?:??&&

邏輯OR?:???||

三元:???????:

賦值:??????=???+=???-=???*=???/=???%=???>>???=<???<=???&=???^=???|=

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末豺谈,一起剝皮案震驚了整個濱河市郑象,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌茬末,老刑警劉巖厂榛,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡击奶,警方通過查閱死者的電腦和手機辈双,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來柜砾,“玉大人湃望,你說我怎么就攤上這事【忠澹” “怎么了喜爷?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長萄唇。 經常有香客問我檩帐,道長,這世上最難降的妖魔是什么另萤? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任湃密,我火速辦了婚禮,結果婚禮上四敞,老公的妹妹穿的比我還像新娘泛源。我一直安慰自己,他們只是感情好忿危,可當我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布达箍。 她就那樣靜靜地躺著,像睡著了一般铺厨。 火紅的嫁衣襯著肌膚如雪缎玫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天解滓,我揣著相機與錄音赃磨,去河邊找鬼。 笑死洼裤,一個胖子當著我的面吹牛邻辉,可吹牛的內容都是我干的。 我是一名探鬼主播腮鞍,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼值骇,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了缕减?” 一聲冷哼從身側響起雷客,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎桥狡,沒想到半個月后搅裙,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體皱卓,經...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年部逮,在試婚紗的時候發(fā)現(xiàn)自己被綠了娜汁。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡兄朋,死狀恐怖掐禁,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情颅和,我是刑警寧澤傅事,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站峡扩,受9級特大地震影響蹭越,放射性物質發(fā)生泄漏。R本人自食惡果不足惜教届,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一响鹃、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧案训,春花似錦买置、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至城舞,卻和暖如春倦卖,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背椿争。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留熟嫩,地道東北人秦踪。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像掸茅,于是被迫代替她去往敵國和親椅邓。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內容

  • 1.運算符:進行特定操作的符號昧狮。 表達式:用運算符連起來的式子叫做表達式景馁。 2.具體類型: 2.1加減乘除 ...
    Jhxia閱讀 567評論 0 0
  • 一、內存分析(棧) 二逗鸣、注釋:comment 注釋的作用:幫助開發(fā)人員更好的理解記憶程序的合住。 java 中支持三種...
    fe0180bd6eaf閱讀 465評論 2 0
  • 第01章 JAVA簡介第02章 基礎語法第02章 遞歸補充第03章 面向對象第04章 異常處理第05章 數(shù)組第06...
    順毛閱讀 514評論 0 1
  • 彩鉛一階第三次居家練習分享:周六都是忙碌的绰精,吃喝拉撒睡,往返興趣班之間透葛,午睡后笨使,趁著孩子做作業(yè)的時間,拿出筆和紙練...
    芊雪姑娘閱讀 260評論 0 1
  • 1986年僚害,恰逢哈佛建校350周年慶典之際硫椰,哈佛邀請時任總統(tǒng)里根參加校慶。 里根非常高興萨蚕,但向哈佛提...
    首席法務閱讀 353評論 2 5