7.Java運算符

轉載請保留原文鏈接: http://dashidan.com/article/java/basic/7.html

7.Java運算符

Java運算符分爲, 算術運算符, 複合運算符, 關係運算符, 條件運算符.

① Java算數運算符

Java算數運算符: 加, 減, 乘, 除(取模, 取餘), 算數運算符從右往左賦值.即將等號右邊的值,賦給等號左邊的變量.

  • +

int a = 1;int b = 2;int c = a + b;System.out.println(c);
  • -

int a = 1;int b = 2;int c = a - b;System.out.println(c);
  • *

int a = 1;int b = 2;int c = a * b;System.out.println(c);
  • 除-取模/

對整數取模運算,相當於取結果的整數,去掉餘數.

int a = 1;int b = 2;int c = a / b;System.out.println(c);
  • 除-取餘%

對整數取餘運算,相當於取得不夠整除部分的數值.

int a = 1;int b = 2;int c = a % b;System.out.println(c);

② Java自動類型轉換

當兩個類型不同的數據類型運算時,結果自動轉化爲取值範圍大的數據.

byte->short->int->long->float->double

具體規則:

  • 布爾型和其它基本數據類型之間不能相互轉換.

  • byte型可以轉換爲short、int、、long、float和double.

  • short可轉換爲int、long、float和double.

  • char可轉換爲int、long、float和double.

  • int可轉換爲long、float和double.

  • long可轉換爲float和double.

  • float可轉換爲double.

示例代碼:

package com.dashidan.lesson6;/**
 * 大屎蛋教程網-localhost
 * <p>
 * Java教程基礎篇: 6. Java運算符
 * Java算數運算符
 */public class Demo1 {
    public static void main(String[] args) {
        /** 加`+`*/
        int a = 1;
        int b = 2;
        int c = a + b;
        System.out.println(c);
        /** 減`-`*/
        a = 1;
        b = 2;
        c = a - b;
        System.out.println(c);
        /** 乘`*` */
        a = 1;
        b = 2;
        c = a * b;
        System.out.println(c);
        /** 除-取模`/`對整數取模運算,相當於取結果的整數,去掉餘數.*/
        a = 1;
        b = 2;
        c = a / b;
        System.out.println(c);
        /** 除-取餘`%`對整數取餘運算,相當於取結果的餘數.*/
        a = 1;
        b = 2;
        c = a % b;
        System.out.println(c);
    }}

輸出:

3
-1
2
0
1

③ Java複合運算符

複合運算符是一種簡寫. 以+=爲例,表示加一個值再賦值給本身.常用的複合運算符:

  • +=加法賦值

a += 1;// 等同於以下a = a + 1;
  • -=減法賦值

b -= 1;// 等同於以下b = b - 1;
  • *=乘法賦值

c *= 1;// 等同於以下c = c * 1;
  • /=除法賦值

d /= 1;// 等同於以下d = d / 1;
  • %=模運算賦值

e %= 1;// 等同於以下e = e % 1;

示例代碼:

package com.dashidan.lesson6;/**
 * 大屎蛋教程網-localhost
 * <p>
 * Java教程基礎篇: 6. Java運算符
 * Java複合運算符
 */public class Demo2 {
    public static void main(String[] args) {
        int a = 0;
        /** += 運算*/
        a += 1;
        System.out.println(a);
        /** -= 運算*/
        int b = 0;
        b -= 1;
        System.out.println(b);
        /** *= 運算*/
        int c = 2;
        c *= 3;
        System.out.println(c);
        /** /= 運算*/
        int d = 5;
        d /= 3;
        System.out.println(d);
        /** %= 運算*/
        int e = 5;
        e %= 3;
        System.out.println(e);
    }}

輸出:

1
-1
6
1
2

④ Java自增,自減運算符

自增運算符++, 自建運算符--.原理一樣,以自增運算符爲例介紹.

分前綴式(如++i)和後綴式(如i++). 以自增運算符(++)爲例: 前綴式是先加1再使用,後綴式是先使用再加1.

單獨執行自增自減時前綴式,後綴式單獨執行結果一樣.道理同自增運算符,只是加1,變成了減1.

int i = 0;i++;System.out.println(i);int j = 0;++j;System.out.println(j);

放在運算過程中執行. 前綴,後綴放在運算過程中結果不同.

/** 後綴式*//** 初始化a和i*/a = 0;i = 0;a = i++;/** i使用前是0,此時i爲0不加1,a爲0. */System.out.println(a);/** 使用後i加1,i爲1*/System.out.println(i);

示例代碼:

package com.dashidan.lesson6;/**
 * 大屎蛋教程網-localhost
 * <p>
 * Java教程基礎篇: 6. Java運算符
 * Java自增,自減運算符
 */public class Demo3 {
    public static void main(String[] args) {
        /** 前綴,後綴單獨執行結果一樣*/
        int i = 0;
        i++;
        System.out.println(i);
        int j = 0;
        ++j;
        System.out.println(j);
        /** 前綴,後綴放在運算過程中結果不同*/
        /** 前綴式*/
        int a = 0;
        i = 0;
        a = ++i;
        /** i使用前是0,此時i爲0不加1,a爲0. */
        System.out.println(a);
        /** 使用後i加1,i爲1*/
        System.out.println(i);

        /** 後綴式*/
        /** 初始化a和i*/
        a = 0;
        i = 0;
        a = i++;
        /** i使用前是0,此時i爲0不加1,a爲0. */
        System.out.println(a);
        /** 使用後i加1,i爲1*/
        System.out.println(i);
    }}

輸出:

1
1
1
1
0
1

倒數第二個輸出是`0`,這個就是後綴式的使用後計算導致的結果.

⑤ Java關係運算符

關係運算符用於比較兩個數值之間的大小. 其運算結果爲一個布爾值(boolean),只有true(真)和false(假)兩個取值.
基本數據類型的關係運算符:

  • >大於

  • <小於

  • >=大於或等於

  • <=小於或等於

  • ==等於

  • !=不等於

示例代碼:

package com.dashidan.lesson6;/**
 * 大屎蛋教程網-localhost
 * <p>
 * Java教程基礎篇: 6. Java運算符
 * Java關係運算符
 */public class Demo4 {
    public static void main(String[] args) {
        int a = 0;
        int b = 0;
        boolean c = a > b;
        System.out.println(c);
        boolean d = a < b;
        System.out.println(d);
        boolean e = a == b;
        System.out.println(e);
        boolean f = a == b;
        System.out.println(f);
    }}

輸出:

false
false
true
true

⑥ Java邏輯運算符

邏輯運算符主要用於進行條件真(true)假(false)運算.包括&&(且), ||(或),!(異或) , ^(非), instanceof(判斷對象實例類型).

  • &&

兩目運算符,需要2個值參與運算. 符號兩邊的條件都爲true,運算結果爲true.如果任一條件爲false,結果爲false.

boolean a = true;boolean b = false;boolean c = a && b;// a和b裏不同時爲true,故`&&`運算的結果爲falseSystem.out.println(c);
  • ||

兩目運算符,需要2個值參與運算. 符號兩邊的條如果任一條件爲true,結果爲true.如果都爲false,結果爲false.

boolean a = true;boolean b = false;boolean c = a || b;// a和b裏面,a爲true,故`||`運算的結果爲trueSystem.out.println(c);
  • !

單目運算符,需要1個值參與運算.得到與原布爾值相反的值. 原值爲true,經過!運算,得false. 原值爲false,經過!運算,得true.

boolean a = true;boolean c = !a;// c爲 a的相反值,即爲trueSystem.out.println(c);
  • ^異或

兩目運算符,需要2個值參與運算. 符號兩邊的布爾結果不同時,結果爲true.如果相同(同時爲true,或者同時爲false),結果爲false.

boolean a = true;boolean b = false;boolean c = false;boolean d = a ^ b;boolean e = b ^ c;// a和b裏不同,故`^`運算的結果爲false,d爲falseSystem.out.println(d);// c和d裏同時爲false,故`^`運算的結果爲true,e爲trueSystem.out.println(e);

示例代碼:

package com.dashidan.lesson6;/**
 * 大屎蛋教程網-localhost
 * <p>
 * Java教程基礎篇: 6. Java運算符
 * Java邏輯運算符
 */public class Demo5 {
    public static void main(String[] args) {
        boolean a = true;
        boolean b = false;
        boolean c = a && b;
        /** a和b裏不同時爲true,故`&&`運算的結果爲false*/
        System.out.println(c);
        a = true;
        b = false;
        c = a || b;
        /** a和b裏面,a爲true,故`||`運算的結果爲true*/
        System.out.println(c);
        a = true;
        c = !a;
        /** c爲 a的相反值,即爲true*/
        System.out.println(c);
        a = true;
        b = false;
        c = false;
        boolean d = a ^ b;
        boolean e = b ^ c;
        /** a和b裏不同,故`^`運算的結果爲false,d爲false*/
        System.out.println(d);
        /** c和d裏同時爲false,故`^`運算的結果爲true,e爲true*/
        System.out.println(e);
    }}

輸出:

false
true
false
true
false

⑦ Java條件運算符

由兩個符號組成?:,要求有3個操作對象,所以也叫三目運算符.

a<b?a:b;

如果?前邊的表達式(a<b)爲true,取:前邊的值,即a值. 如果?前邊的表達式(a<b)爲false,取:後邊的值,即b值.

示例代碼:

package com.dashidan.lesson6;/**
 * 大屎蛋教程網-localhost
 * <p>
 * Java教程基礎篇: 6. Java運算符
 * Java三目運算符
 */public class Demo6 {
    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        int c = a > b ? a : b;
        /** a > b 爲false,所以取":"後邊的值b賦值給c, 故c爲2.*/
        System.out.println(c);
    }}

輸出:

2

⑧ Java運算符優先級

基本的原則是有括號先算括號裏的,然後先乘除後加減. 乘除都有時,從左往右依次計算. 加減從左往右依次計算. 示例代碼:

int a = 1;int b = 2;int c = 3;int d = a + b * c;/** 乘號的優先級比加號高, 先算b*c再加a,故d爲7*/System.out.println(d);

加減乘除混合, 示例代碼:

package com.dashidan.lesson6;/**
 * 大屎蛋教程網-localhost
 * <p>
 * Java教程基礎篇: 6. Java運算符
 * Java運算符優先級
 */public class Demo7 {
    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        int c = 3;
        int d = a + b * c;
        /** 乘號的優先級比加號高, 先算b*c再加a,故d爲7*/
        System.out.println(d);
        /** 加減乘除混合*/
        a = 1;
        b = 2;
        c = 3;
        d = 4;
        d = a + b * c / d - 5;
        /** 乘號和除號的優先級比加號高, 先算乘除, 從左往右, b*c得6,d(值爲4),`6/4`得`1.5`.取模運算省去小數,`b*c/d`得1*/
        /** 加減法從左往右計算,a+1-5得-3,賦值給d.故d爲-3.*/
        System.out.println(d);
    }}

輸出:

7
-3
Java運算符優先級表
優先級符號名稱結合性
1.從左到右
( )圓括號從左到右
[ ]方括號從左到右
2+正號從右到左
-負號從右到左
++自增從右到左
- -自減從右到左
~按位非/取補運算從右到左
邏輯非從右到左
3*從左到右
/從左到右
%取餘從左到右
4+從左到右
-從左到右
5<< 左移位運算符從左到右
>> 帶符號右移位運算符從左到右
>>> 無符號右移從左到右
6小於從左到右
<=小於或等於從左到右
大於從左到右
>=大於或等於從左到右
instanceof對象是否屬於指定的類從左到右
7==等於從左到右
!=不等於從左到右
8&按位與從左到右
9|按位或從左到右
10^按位異或從左到右
11&&短路與從左到右
12||短路或從左到右
13?:條件運算符從右到左
14=賦值運算符從右到左
+=混合賦值運算符
-=
*=
/=
%=
&=
|=
^=
<<=
>>=
>>>=

⑨ 相關文章

 Java從入門到精通目錄


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章