Java運算符

第1章  運算符

1.1  算數運算符

       運算符

對常量和變量進行操作的符號稱爲運算符

       表達式

用運算符把常量或者變量連接起來符號java語法的式子就可以稱爲表達式。不同運算符連接的式子體現的是不同類型的表達式。

定義兩個int類型的變量a,b,做加法(a +b)

       常用運算符

算術運算符

賦值運算符

關係運算符

邏輯運算符

三元運算符

 

1.1.1算數運算符的基本用法

1.1.2算數運算符概述

 A:什麼是運算符

        就是對常量和變量進行操作的符號。

B:算數運算符有哪些

       *+,-,*,/,%,++,-- 

1.1.3代碼案例三

package com.itheima_01;
/*
 * 運算符:對常量和變量進行操作的符號
 * 表達式:用運算符連接起來的符合java語法的式子。不同類型的運算符連接起來的式子是不同的表達式。
 *      舉例:定義兩個int類型的變量a,b,
 *          a+ b
 * 
 * 運算符分類:
 *      算術運算符,賦值運算符,關係運算符,邏輯運算符,三元運算符。
 * 
 * 算術運算符:
 *      +,-,*,/的基本使用
 */
public class OperatorDemo {
    public staticvoid main(String[] args) {
        // 定義兩個變量
        int a = 3;
        int b = 4;
 
        System.out.println(a+ b);
        System.out.println(a- b);
        System.out.println(a* b);
        System.out.println(a/ b);
 
        // 整數相除只能得到整數,要想得到小數,就必須有浮點數參與運算
        System.out.println(3 / 4.0);
        System.out.println(3.0 / 4);
    }
}

 

1.1.4算數運算符取餘和除法的區別

 %:取餘運算符。得到的是兩個相除數據的餘數。

 /:除法運算符。得到是兩個相除數據的商。

 使用場景: %:判斷兩個數據是否整除。

1.1.5代碼案例四

public class OperatorDemo2 {
    public staticvoid main(String[] args) {
        int a = 5;
        int b = 3;
 
        System.out.println(a/ b);
        System.out.println(a% b);
    }
}

 

1.1.6字符和字符串參與加法操作

字符參與運算

其實是拿該字符對應的數值來操作

‘a’     97

‘A’     65

‘0’     48

字符串參與運算

這裏其實做的不是加法運算,而是字符串拼接。

字符串和其他類型的數據做拼接,結果是字符串類型的。

1.1.7代碼案例五

package com.itheima_01;
/*
 * 整數的加法。
 * 字符參與加法操作。拿字符在計算機中底層存儲對應的數據值來參與運算的。
 *      '0'     48
 *      'a'     97
 *      'A'     65
 * 字符串參與加法操作。
 *      這裏的+其實不是加法,而是字符串連接符。
 */
public class OperatorDemo3 {
    public staticvoid main(String[] args) {
        // 整數加法
        int a = 10;
        int b = 20;
        System.out.println(a+ b);
        System.out.println("------------------");
 
        // 字符參與加法操作
        char c = '0';
        char c2 = 'a';
        System.out.println(a + c);
        System.out.println(a+ c2);
        System.out.println("------------------");
 
        // 字符串參與加法操作
        System.out.println("hello"+ a);
        System.out.println("hello"+ a + b);// "hello"+10,然後再和b進行拼接
        System.out.println(a+ b + "hello");
    }
}

1.1.8算數運算符++和- - 的用法

++,--運算符:對變量做加1或者減1的操作。

++或者--既可以放在變量的後面,也可以放在變量的前面。

單獨使用的時候,++或者--無論是放在變量的前面還是後面,結果是一樣的。

參與操作的時候:

             如果++或者--在變量的後面,先拿變量參與操作,後變量做++或者--

              如果++或者--在變量的前面,先變量做++或者--,後拿變量參與操作

1.1.9代碼案例六

public class OperatorDemo4 {
    public staticvoid main(String[] args) {
        int a = 10;
        System.out.println("a:"+ a);
 
        // 單獨使用
        // a++;
        // ++a;
        // System.out.println("a:" + a);
 
        // 參與操作使用
        // int b = a++;
        int b = ++a;
        System.out.println("a:"+ a);
        System.out.println("b:"+ b);
    }
}

 

1.2  賦值運算符

1.2.1賦值運算符分類

基本的賦值運算符:=

擴展的賦值運算符:+=,-=,*=,/=,%=

+=: a+=20;相當於a = (a的數據類型)(a + 20);

1.2.2代碼案例七

package com.itheima_02;
/*
 * 賦值運算符:
 *      A:基本   =
 *      B:擴展   +=,-=,*=,...
 * 
 * +=:
 *      a+=20;
 *      相當於
 *      a= (a的數據類型)(a + 20);
 */
public class OperatorDemo {
    public staticvoid main(String[] args) {
        // 把10賦值給int類型的變量a
        int a = 10;
 
        // += 把左邊和右邊的數據進行運算,最後賦值給左邊。左邊的只能是變量
        a += 10;// 相當於a= a + 10
        System.out.println("a:"+ a);
        System.out.println("----------------------");
 
        short s =10;
        // s += 20; // 相當於 s = s + 20;
        s = (short)(s + 20);
        System.out.println("s:"+ s);
    }
}

 

1.3  關係運算符

1.3.1    基本使用及注意事項

關係運算符包含以下內容:

==,!=,>,>=,<,<=

關係運算符的結果都是boolean型,也就是要麼是true,要麼是false。

注意事項:

關係運算符“==”不能誤寫成“=”

1.3.2    代碼案例八

package com.itheima_03;
 
/*
 * 關係運算符:
 *      ==,!=,>,>=,<,<=
 *      關係運算符的結果是boolean類型。
 * 
 * 注意:
 *      千萬不要把==寫成=
 */
public class OperatorDemo {
    public staticvoid main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 10;
 
        System.out.println(a== b);
        System.out.println(a== c);
        System.out.println("-----------------");
        System.out.println(a!= b);
        System.out.println(a!= c);
        System.out.println("-----------------");
        System.out.println(a> b);
        System.out.println(a> c);
        System.out.println("-----------------");
        System.out.println(a>= b);
        System.out.println(a>= c);
        System.out.println("-----------------");
 
        int x = 3;
        int y = 4;
        // System.out.println(x == y);
        // System.out.println(x = y);// 把y賦值給x,把x的值輸出
        boolean bb= (x == y);
        // 報錯
        // boolean cc = (x = y);
        int cc = (x = y);
    }
}

 

1.4  邏輯運算符

1.4.1    邏輯運算符概述

A:邏輯運算符有哪些

       &,|,^,!

       &&,||

 B:案例演示

 邏輯運算符的基本用法

      

 C:注意事項:

       a:邏輯運算符一般用於連接boolean類型的表達式或者值。

       b:表達式:就是用運算符把常量或者變量連接起來的符合java語法的式子。

             算術表達式:a + b

              比較表達式:a == b(條件表達式)

 D:結論:

      &邏輯與:有false則false。

      |邏輯或:有true則true。

      ^邏輯異或:相同爲false,不同爲true。

      !邏輯非:非false則true,非true則false。

       特點:偶數個不改變本身。

1.4.2    代碼案例九

package com.itheima_04;
/*
 * 邏輯運算符:用於連接關係表達式。
 * &,|,^,!
 * &&,||
 * 
 * 與:& 有false則false
 * 或:| 有true則true
 * 異或:^ 相同則false,不同則true。(男女朋友)
 * 非:! true則false,false則true
 */
public class OperatorDemo {
    public staticvoid main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 30;
 
        System.out.println((a> b) & (a> c));//false & false
        System.out.println((a< b) & (a> c)); //true & false
        System.out.println((a> b) & (a< c)); //false & true
        System.out.println((a< b) & (a< c)); //true & true
        System.out.println("---------------");
        System.out.println((a> b) | (a> c));//false | false
        System.out.println((a< b) | (a> c)); //true | false
        System.out.println((a> b) | (a< c)); //false | true
        System.out.println((a< b) | (a< c)); //true | true
        System.out.println("---------------");
        System.out.println((a> b) ^ (a> c));//false ^ false
        System.out.println((a< b) ^ (a> c)); //true ^ false
        System.out.println((a> b) ^ (a< c)); //false ^ true
        System.out.println((a< b) ^ (a< c)); //true ^ true
        System.out.println("---------------");
        System.out.println((a> b)); //false
        System.out.println(!(a> b)); //!false
        System.out.println(!!(a> b)); //!!false
    }
}

1.4.3    邏輯運算符&&&的區別

A:&&和&的區別?

       a:最終結果一樣。

       b:&&具有短路效果。左邊是false,右邊不執行。

       &是無論左邊是false還是true,右邊都會執行

B:||和|的區別?

       a:最終結果一樣

       b:||具有短路效果.左邊是true,右邊不執行

       |是無論左邊是false還是true,右邊都會執行

1.4.4    代碼案例十:

package com.itheima_04;
 
/*
 * &&和&的結果一樣
 * ||和|的結果一樣
 * 
 * &&和&的區別:
 *      &&如果左邊是false,右邊不執行。
 *      &無論左邊是true還是false,右邊都會執行。
 */
public class OperatorDemo2 {
    public staticvoid main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 30;
 
        System.out.println((a> b) && (a> c));//false && false
        System.out.println((a< b) && (a> c)); //true && false
        System.out.println((a> b) && (a< c)); //false && true
        System.out.println((a< b) && (a< c)); //true && true
        System.out.println("---------------");
        System.out.println((a> b) || (a> c));//false || false
        System.out.println((a< b) || (a> c)); //true || false
        System.out.println((a> b) || (a< c)); //false || true
        System.out.println((a< b) || (a< c)); //true || true
        System.out.println("---------------");
 
        int x = 3;
        int y = 4;
        // System.out.println((x++ > 4) & (y++ > 5));// false & false
        System.out.println((x++> 4) && (y++ > 5)); // false && false
        System.out.println("x:"+ x);
        System.out.println("y:"+ y);
    }
}

1.5  三元運算符

1.5.1三元運算符概述

A:格式

       (關係表達式)?表達式1:表達式2;

       如果條件爲true,運算後的結果是表達式1;

       如果條件爲false,運算後的結果是表達式2;

B:示例:

       獲取兩個數中大數。

       int x=3,y=4,z;

       z = (x>y)?x:y;//z變量存儲的就是兩個數的大數

1.5.2代碼案例十一

package com.itheima_05;
/*
 * 三元運算符:
 * 
 * 格式:
 *      (關係表達式)?表達式1:表達式2;
 * 執行流程:
 *      A:計算關係表達式的值,看是true還是false
 *      B:如果是true,表達式1就是運算結果
 *            如果是false,表達式2就是運算結果
 */
public class OperatorDemo {
    public staticvoid main(String[] args) {
        int a = 10;
        int b = 20;
 
        int c = (a > b) ? a : b;
        System.out.println("c:"+ c);
    }
}

 

1.5.3代碼案例十二(比較兩個數是否相同)

package com.itheima_05;
 
/*  
 * 三元運算符的練習
 * 比較兩個整數是否相同
 */
public class OperatorTest {
    public staticvoid main(String[] args) {
        // 定義兩個int類型的變量
        int a = 10;
        int b = 20;
 
        boolean flag= (a== b) ? true: false;
        // boolean flag = (a == b);
        System.out.println(flag);
    }
}

 

1.5.4代碼案例十三(獲取三個數中的最大值)

package com.itheima_05;
/*
 * 獲取三個整數中的最大值
 */
public class OperatorTest2 {
    public staticvoid main(String[] args) {
        // 定義三個int類型的變量
        int a = 10;
        int b = 30;
        int c = 20;
 
        // 先比較兩個整數的大值
        int temp =((a > b)? a : b);
        int max =((temp > c)? temp : c);
        System.out.println("max:"+ max);
    }
}


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