搜尋
首頁Javajava教程JAVA 入坑教學 | 章節五 運算符合集

Java 運算子

電腦的最基本用途之一就是執行數學運算,作為一門電腦語言,Java也提供了一套豐富的運算子來操縱變數。我們可以把運算子分成以下幾組:

  • 算術運算子

  • 關係運算子

  • ##位元運算子

  • 邏輯運算子

  • #賦值運算子

  • 其它運算子


算術運算子

算術運算子用在數學表達式中,它們的作用和在數學中的作用一樣。下表列出了所有的算術運算子。

表格中的實例假設整數變數A的值為10,變數B的值為20:

## 加法- 相加運算子兩側的值A + B 等於30#-減法- 左運算元減去右運算元A – B 等於-10*乘法- 相乘運算子兩邊的值A * B等於200/除法- 左運算元除以右運算元B / A等於2# #%##++ #自增: 運算元的值增加1B++ 或++B 等於21(差異詳見下文)
運算子 描述 範例
#+
取模- 左運算元除右運算元的餘數 B%A等於0
-- 自減: 運算元的值減少1 B-- 或--B 等於19(差異詳見下文)
#

實例

複製並貼上下面的Java 程式並將其儲存為Test.java 文件,然後編譯並執行這個程式:


public class Test {
 
  public static void main(String args[]) {
     int a = 10;
     int b = 20;
     int c = 25;
     int d = 25;
     System.out.println("a + b = " + (a + b) );
     System.out.println("a - b = " + (a - b) );
     System.out.println("a * b = " + (a * b) );
     System.out.println("b / a = " + (b / a) );
     System.out.println("b % a = " + (b % a) );
     System.out.println("c % a = " + (c % a) );
     System.out.println("a++   = " +  (a++) );
     System.out.println("a--   = " +  (a--) );
     // 查看  d++ 与 ++d 的不同
     System.out.println("d++   = " +  (d++) );
     System.out.println("++d   = " +  (++d) );
  }
}


自增自減運算子


1、自增(++)自減(--)運算子是一種特殊的算術運算符,在算術運算子中需要兩個操作數來進行運算,而自增自減運算符是一個操作數。

public class selfAddMinus{
    public static void main(String[] args){
        int a = 3;//定义一个变量;
        int b = ++a;//自增运算
        int c = 3;
        int d = --c;//自减运算
        System.out.println("进行自增运算后的值等于"+b);
        System.out.println("进行自减运算后的值等于"+d);
    }
}


執行結果為:

进行自增运算后的值等于4进行自减运算后的值等于2

#解析:

  • int b = ++a; 拆分运算过程为: a=a+1=4; b=a=4, 最后结果为b=4,a=4
    int d = --c; 拆分运算过程为: c=c-1=2; d=c=2, 最后结果为d=2,c=2

2.前綴自增自減法(++a,--a): 先進行自增或自減運算,再進行表達式運算。


3、後綴自增自減法(a++,a--): 先進行表達式運算,再進行自增或者自減運算實例:

public class selfAddMinus{
    public static void main(String[] args){
        int a = 5;//定义一个变量;
        int b = 5;
        int x = 2*++a;
        int y = 2*b++;
        System.out.println("自增运算符前缀运算后a="+a+",x="+x);
        System.out.println("自增运算符后缀运算后b="+b+",y="+y);
    }
}

執行結果為:

自增运算符前缀运算后a=6,x=12自增运算符后缀运算后b=6,y=10

關係運算子

#下表為Java支援的關係運算子

#表格中的實例整數變數A的值為10,變數B的值為20:

運算子 描述 範例
== 檢查如果兩個運算元的值是否相等,若相等則條件為真。 (A == B)為假(非真)。
!= 檢查如果兩個運算元的值是否相等,如果值不相等則條件為真。 (A != B) 為真。
檢查左運算元的值是否大於右邊運算元的值,如果是那麼條件為真。 (A> B)非真。
檢查左邊運算元的值是否小於右邊運算元的值,如果是那麼條件為真。 (A
> = 檢查左運算元的值是否大於或等於右邊運算元的值,如果是那麼條件為真。 (A> = B)為假。
檢查左運算元的值是否小於或等於右邊運算元的值,如果是那麼條件為真。 (A

实例

下面的简单示例程序演示了关系运算符。复制并粘贴下面的Java程序并保存为Test.java文件,然后编译并运行这个程序:

public class Test {
 
  public static void main(String args[]) {
     int a = 10;
     int b = 20;
     System.out.println("a == b = " + (a == b) );
     System.out.println("a != b = " + (a != b) );
     System.out.println("a > b = " + (a > b) );
     System.out.println("a < b = " + (a < b) );
     System.out.println("b >= a = " + (b >= a) );
     System.out.println("b <= a = " + (b <= a) );
  }
}

以上实例编译运行结果如下:

a == b = falsea != b = truea > b = falsea < b = trueb >= a = trueb <= a = false

位运算符

Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。

位运算符作用在所有的位上,并且按位运算。假设a = 60,b = 13;它们的二进制格式表示将如下:

A = 0011 1100
B = 0000 1101
-----------------
A&b = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~A= 1100 0011

下表列出了位运算符的基本运算,假设整数变量A的值为60和变量B的值为13:

##如果相對應位元都是1,則結果為1,否則為0(A&B),得到12,即0000 1100|#如果相對應位元都是0,則結果為0,否則為1(A | B)得到61,即0011 1101#若相對應位值相同,則結果為0,否則為1(A ^ B)得到49,即0011 0001~
運算子 描述 範例
#&
############################ #位元補運算子翻轉操作數的每一位,即0變成1,1變成0。 ######(〜A)得到-61,即1100 0011############# A
>>  以位元右移運算子。左操作數按位右移右操作數指定的位數。 A >> 2得到15即 1111
#>>>  按位右移補零運算子。左操作數的值以右操作數指定的位數右移,移動得到的空位以零填滿。 A>>>2得到15即0000 1111


实例

复制并粘贴下面的Java程序并保存为TestA.java文件,然后编译并运行这个程序:


public class TestA {
  public static void main(String args[]) {
     int a = 60; /* 60 = 0011 1100 */ 
     int b = 13; /* 13 = 0000 1101 */
     int c = 0;
     c = a & b;       /* 12 = 0000 1100 */
     System.out.println("a & b = " + c );
 
     c = a | b;       /* 61 = 0011 1101 */
     System.out.println("a | b = " + c );
 
     c = a ^ b;       /* 49 = 0011 0001 */
     System.out.println("a ^ b = " + c );
 
     c = ~a;          /*-61 = 1100 0011 */
     System.out.println("~a = " + c );
 
     c = a << 2;     /* 240 = 1111 0000 */
     System.out.println("a << 2 = " + c );
 
     c = a >> 2;     /* 15 = 1111 */
     System.out.println("a >> 2  = " + c );
  
     c = a >>> 2;     /* 15 = 0000 1111 */
     System.out.println("a >>> 2 = " + c );
  }
}

以上实例编译运行结果如下:

a & b = 12a | b = 61a ^ b = 49~a = -61a << 2 = 240a >> 15a >>> 15

逻辑运算符

下表列出了逻辑运算符的基本运算,假设布尔变量A为真,变量B为假

運算子 描述 範例
#&& 稱為邏輯與運算符。當且僅當兩個操作數都為真,條件才為真。 (A && B)為假。
| | 稱為邏輯或運算子。若任兩個運算元任何一個為真,條件為真。 (A | | B)為真。
稱為邏輯非運算子。用來反轉運算元的邏輯狀態。如果條件為true,則邏輯非運算子將會得到false。 ! (A && B)為真。

实例

复制并粘贴下面的Java程序并保存为TestA.java文件,然后编译并运行这个程序:

public class TestA {
  public static void main(String args[]) {
     boolean a = true;
     boolean b = false;
     System.out.println("a && b = " + (a&&b));
     System.out.println("a || b = " + (a||b) );
     System.out.println("!(a && b) = " + !(a && b));
  }
}

以上实例编译运行结果如下:

a && b = falsea || b = true!(a && b) = true

短路逻辑运算符

当使用与逻辑运算符时,在两个操作数都为true时,结果才为true,但是当得到第一个操作为false时,其结果就必定是false,这时候就不会再判断第二个操作了。

public class LuoJi{
    public static void main(String[] args){
        int a = 5;//定义一个变量;
        boolean b = (a<4)&&(a++<10);
        System.out.println("使用短路逻辑运算符的结果为"+b);
        System.out.println("a的结果为"+a);
    }
}

运行结果为:

使用短路逻辑运算符的结果为falsea的结果为5

解析: 该程序使用到了短路逻辑运算符(&&),首先判断 a


赋值运算符

下面是Java语言支持的赋值运算符:

##+ = 加上和賦值運算符,它把左運算元和右邊運算元相加賦值給左運算元C + = A等價於C = C + A- =減和賦值運算符,它把左運算元和右運算元相減賦值給左運算元C - = A等價於C = C -#
運算子 描述 範例
#= 簡單的賦值運算符,將右邊運算元的值賦給左邊運算元 C = A + B將把A + B得到的值賦給C
A
* = 乘與賦值運算符,它把左運算元與右邊運算元相乘賦值給左運算數 C * = A等價於C = C * A
/ = 除和賦值運算符,它會將左運算元和右運算元相除賦值給左運算數 C / = A等價於C = C / A
#(%)= 取模與賦值運算符,它把左運算元與右運算元取模後賦值給左運算元 C%= A等價於C = C%A
左移賦值運算子 C
>> = 右邊移位賦值運算子 C >> = 2等價於C = C >> 2
& = 位元與賦值運算子 C&= 2等價於C = C&2
^ = 。異或賦值運算子 C ^ = 2等價於C = C ^ 2
| = 以位元或賦值運算子 C | = 2等價於C = C | 2

实例

复制并粘贴下面的Java程序并保存为TestA.java文件,然后编译并运行这个程序:

public class TestA {
  public static void main(String args[]) {
     int a = 10;
     int b = 20;
     int c = 0;
     c = a + b;
     System.out.println("c = a + b = " + c );
     c += a ;
     System.out.println("c += a  = " + c );
     c -= a ;
     System.out.println("c -= a = " + c );
     c *= a ;
     System.out.println("c *= a = " + c );
     a = 10;
     c = 15;
     c /= a ;
     System.out.println("c /= a = " + c );
     a = 10;
     c = 15;
     c %= a ;
     System.out.println("c %= a  = " + c );
     c <<= 2 ;
     System.out.println("c <<= 2 = " + c );
     c >>= 2 ;
     System.out.println("c >>= 2 = " + c );
     c >>= 2 ;
     System.out.println("c >>= a = " + c );
     c &= a ;
     System.out.println("c &= 2  = " + c );
     c ^= a ;
     System.out.println("c ^= a   = " + c );
     c |= a ;
     System.out.println("c |= a   = " + c );
  }
}

以上实例编译运行结果如下:

c = a + b = 30c += a  = 40c -= a = 30c *= a = 300c /= a = 1c %= a  = 5c <<= 2 = 20c >>= 2 = 5c >>= 2 = 1c &= a  = 0c ^= a   = 10c |= a   = 10

条件运算符(?:)

条件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。

variable x = (expression) ? value if true : value if false

实例

public class Test {
   public static void main(String args[]){
      int a , b;
      a = 10;
      // 如果 a 等于 1 成立,则设置 b 为 20,否则为 30
      b = (a == 1) ? 20 : 30;
      System.out.println( "Value of b is : " +  b );
 
      // 如果 a 等于 10 成立,则设置 b 为 20,否则为 30
      b = (a == 10) ? 20 : 30;
      System.out.println( "Value of b is : " + b );
   }
}

以上实例编译运行结果如下:

Value of b is : 30Value of b is : 20

instanceof 运算符

该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。

instanceof运算符使用格式如下:

( Object reference variable ) instanceof  (class/interface type)

如果运算符左侧变量所指的对象,是操作符右侧类或接口(class/interface)的一个对象,那么结果为真。

下面是一个例子:

String name = "James";boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回真

如果被比较的对象兼容于右侧类型,该运算符仍然返回true。

看下面的例子:

class Vehicle {}
 
public class Car extends Vehicle {
   public static void main(String args[]){
      Vehicle a = new Car();
      boolean result =  a instanceof Car;
      System.out.println( result);
   }
}

以上实例编译运行结果如下:

true

Java运算符优先级

当多个运算符出现在一个表达式中,谁先谁后呢?这就涉及到运算符的优先级别的问题。在一个多运算符的表达式中,运算符优先级不同会导致最后得出的结果差别甚大。

例如,(1+3)+(3+2)*2,这个表达式如果按加号最优先计算,答案就是 18,如果按照乘号最优先,答案则是 14。

再如,x = 7 + 3 * 2;这里x得到13,而不是20,因为乘法运算符比加法运算符有较高的优先级,所以先计算3 * 2得到6,然后再加7。

下表中具有最高优先级的运算符在的表的最上面,最低优先级的在表的底部。

##+ + - !〜##>> > >>  左至右關係 相等 ##按位元與&左到右以位元異或^左到右##&&左到右邏輯或| |#左到右條件? :從右到左賦值#= + = - = * = / =%= >> = 從右到左逗號,左到右
類別 運算子 關聯性
後綴 () [] . (點運算子) 左到右
一元由右至左
#乘性  * /% 左至右
加性  + - 左到右
#移位 
##>> = ##左到右
==  != 左到右
按位或 | 左到右
#邏輯與
# 以上就是JAVA 入坑教學| 章節五運算符合集的內容,更多相關內容請關注PHP中文網(www.php.cn)!



#

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
如何將Maven或Gradle用於高級Java項目管理,構建自動化和依賴性解決方案?如何將Maven或Gradle用於高級Java項目管理,構建自動化和依賴性解決方案?Mar 17, 2025 pm 05:46 PM

本文討論了使用Maven和Gradle進行Java項目管理,構建自動化和依賴性解決方案,以比較其方法和優化策略。

如何使用適當的版本控制和依賴項管理創建和使用自定義Java庫(JAR文件)?如何使用適當的版本控制和依賴項管理創建和使用自定義Java庫(JAR文件)?Mar 17, 2025 pm 05:45 PM

本文使用Maven和Gradle之類的工具討論了具有適當的版本控制和依賴關係管理的自定義Java庫(JAR文件)的創建和使用。

如何使用咖啡因或Guava Cache等庫在Java應用程序中實現多層緩存?如何使用咖啡因或Guava Cache等庫在Java應用程序中實現多層緩存?Mar 17, 2025 pm 05:44 PM

本文討論了使用咖啡因和Guava緩存在Java中實施多層緩存以提高應用程序性能。它涵蓋設置,集成和績效優勢,以及配置和驅逐政策管理最佳PRA

如何將JPA(Java持久性API)用於具有高級功能(例如緩存和懶惰加載)的對象相關映射?如何將JPA(Java持久性API)用於具有高級功能(例如緩存和懶惰加載)的對象相關映射?Mar 17, 2025 pm 05:43 PM

本文討論了使用JPA進行對象相關映射,並具有高級功能,例如緩存和懶惰加載。它涵蓋了設置,實體映射和優化性能的最佳實踐,同時突出潛在的陷阱。[159個字符]

Java的類負載機制如何起作用,包括不同的類載荷及其委託模型?Java的類負載機制如何起作用,包括不同的類載荷及其委託模型?Mar 17, 2025 pm 05:35 PM

Java的類上載涉及使用帶有引導,擴展程序和應用程序類負載器的分層系統加載,鏈接和初始化類。父代授權模型確保首先加載核心類別,從而影響自定義類LOA

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。