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)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

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

友情鏈接更多精彩內容