1. 程式人生 > >java語言用文字描述如下運算子的作用

java語言用文字描述如下運算子的作用

一、當前實操名稱

文字描述如下運算子的作用以及附加上測試程式碼。

    1.1、算術運算子(+-*/%,自增自減)

    1.2、賦值擴充套件運算子

    1.3、關係運算符(<,>,<=,>=,!=,==)

    1.4、邏輯運算子(&&,||,!)

    1.5、位運算子(&,|,^)

    1.6、條件運算子

    1.7、字串連線符

二、心得與主要bug反饋

2.1、對變數有了詳細的瞭解;

2.2、深刻的認識了幾種運算情況;

2.3、對運算子有了熟練的應用;

2.4、主要bug及異常在程式碼中具體介紹;

三、專案

3.1、作者:胡超凡;

3.2、用時:2h;

3.3、專案環境:

    a、JDK版本:1.8.0_181;

    b、IDE版本:eclipse Oxygen.3a Release (4.7.3a)

    c、系統:win10

    d、專案所用知識點:主要是一個類的main方法中進行相關測試;

3.4、專案

    3.4.1、文字描述運算子的作用

        3.4.1.1、算術運算子(+-*/%,自增自減)

    +-*/%:運算元相加,相減,相乘,相除,相除取餘數;

    ++、--:運算元,自己加1,自己減1;

        3.4.1.2、賦值擴充套件運算子

        3.4.1.3、關係運算符(<,>,<=,>=,!=,==)

在這裡插入圖片描述

關係運算符用來進行比較運算,結果是布林值:true/false;

        3.4.1.4、邏輯運算子(&&,||,!)

在這裡插入圖片描述 3.4.1.5、位運算子(&,|,^) 在這裡插入圖片描述 3.4.1.6、條件運算子

    語法格式:x?y:z;

    其中 x 為 boolean 型別表示式,先計算 x 的值,若為true,則整個運算的結果為表示式 y 的值,否則整個運算結果為表示式 z 的值。

        3.4.1.7、字串連線符

“+”運算子兩側的運算元中只要有一個是字串(String)型別,系統會自動將另一個運算元轉換為字串然後再進行連線。

3.4.2、專案程式碼

3.4.2.1-3.4.2.2、算術運算子(+-*/%,自增自減)   賦值擴充套件運算子

/**

  • 測試算術運算子、賦值和賦值擴充套件運算子
  • @author huchaofan

*/ public class TestOperator01 { public static void main(String[] args) { byte a=1;//特例,int直接付給byte; int b=2; long b2=3; //byte c=a+b;//Type mismatch: cannot convert from int to byte //int c2=b2+b;//Type mismatch: cannot convert from long to int

    //float f1=3.14;//預設double,Type mismatch: cannot convert from double to float
    float f1=3.14F;
     
    double d=b+b2;//測試加法;
    float d1=b-b2;//測試減法;
    long d2=b*b2;//測試乘法;
    int d3=a/b;//測試除法;1/2,為0.5,int型別去掉小數,變為0;
    System.out.println("##########算數運算子測試###########");
    System.out.println("加法測試:b+b2="+d);
    System.out.println("減法測試:b-b2="+d1);
    System.out.println("乘法測試:b*b2="+d2);
    System.out.println("除法測試:a/b="+d3);
     
    //float e=f1+6.2;//預設double,Type mismatch: cannot convert from double to float
    double g=f1+6.2;//如果兩個運算元有一個為double,則結果為double
    float e=f1+6.2F;//只有兩個運算元都是float,則結果才為float
    System.out.println("浮點運算測試:f1+6.2F="+e);
     
    System.out.println("###############取模測試####################");
    System.out.println(-9%5);//-4,取模符號與左邊運算元一樣;
    System.out.println(9%-5);//4
     
    //測試自增和自減
    System.out.println("############自增和自減測試###########");
    int m=3;
    int n=m+++3;//先算n=3+3=6;再m++,即m=4
    System.out.println("m="+m+"\tn="+n);
    m=3;
    n=++m+3;//先算++m,m=4,再n=4+3=7
    System.out.println("m="+m+"\tn="+n);
     
    //測試賦值和賦值擴充套件運算子
    System.out.println("##########賦值和賦值擴充套件運算子測試###########");
    int x=3;//賦值
    int y=4;
    x+=y;//相當於x=x+y
    System.out.println("+=測試:"+"x="+x+"\ty="+y);
    x=3;
    x-=y;//相當於x=x-y
    System.out.println("-=測試:"+"x="+x+"\ty="+y);
    x=3;
    x*=y+3;//相當於x=x*(y+3)
    System.out.println("*=測試:"+"x="+x+"\ty="+y);
    x=3;
    x/=y-3;//相當於x=x/(y-3)
    System.out.println("/=測試:"+"x="+x+"\ty="+y);
    x=3;
    x%=y-2;//相當於x=x%(y-2)
    System.out.println("%=測試:"+"x="+x+"\ty="+y);
     
}

} 在這裡插入圖片描述 3.4.2.3、關係運算符(<,>,<=,>=,!=,==)

/**

  • 測試關係運算符
  • @author huchaofan

*/ public class TestOperator02 { public static void main(String[] args) { int a=3; System.out.println("############測試關係運算符############"); System.out.println(a3);//測試 System.out.println(a!=3);//測試!= System.out.println(a<5);//測試< System.out.println(a>5);//測試>

    System.out.println("#####################");
    char b='a';
    char b2='c';
    System.out.println(b);//a字元
    System.out.println((int)b);//97,強制轉為int型別
    System.out.println(0+b);//2.沒有long時,結果為int。即使運算元全為short,byte,char,int,結果也是int
    System.out.println(0+b2);//99
    System.out.println(b<b2);//true
    System.out.println(b+b2);//char+char型別,自動轉為int;
     
}

} 在這裡插入圖片描述 3.4.2.4、邏輯運算子(&&,||,!)

/**

  • 測試邏輯運算子
  • @author huchaofan

*/ public class TestOperator03 { public static void main(String[] args) { boolean b1=true; boolean b2=false; System.out.println(b1&b2);//測試與 System.out.println(b1|b2);//測試或 System.out.println(b1^b2);//測試異或 System.out.println(!b2);//測試非

    //短路
    System.out.println("###########測試短路###########");
    //int c=3/0;
    /*異常
     * Exception in thread "main" java.lang.ArithmeticException: / by zero
     * at TestOperator03.main(TestOperator03.java:18)
     * 執行緒“main”java.lang.ArithmeticException:異常,/ by zero
     */
     
    boolean b3=1>2&&2<(3/0);//短路與,第一個運算元的值為false,則不需要再計算後面的運算元;
    System.out.println(b3);
    boolean b4=1<2||2<(3/0);//短路或,第一個運算元的值為true,則不需要再計算後面的運算元;
    System.out.println(b4);
}

}

3.4.2.5、位運算子(&,|,^)

/**

  • 位運算子
  • @author huchaofan

*/ public class TestOperator04 { public static void main(String[] args) { int a=3; int b=4; System.out.println(a&b);//測試按位與,3:0011;4:0100,按位與後為:0000,即為0; System.out.println(a|b);//測試按位或,3:0011;4:0100,按位或後為:0111,即為7; System.out.println(a^b);//測試按位異或,3:0011;4:0100,按位異或後為:0111,即為7; System.out.println(~a);//測試按位非,3:0011,按位非後為:1100,即為12; /*異常 * System.out.println(a~b); * Exception in thread “main” java.lang.Error: Unresolved compilation problem: * Syntax error on token “a”, AssignmentOperator expected after this token * 執行緒“主”JavaLang.Error中的異常:未解決的編譯問題: */

    //移位
    System.out.println("##############測試移位#############");
    int c=3<<2;
    System.out.println("c="+c);//3*2*2=12
    System.out.println(12>>2);//12/2/2=3
    System.out.println(12>>3);//1100,右移3位,變為0001,即為1;
     
    int d=28>>3;
    System.out.println("d="+d);//28為:0001 1100,右移3位,變成0000 0011,即為3;
     
    int e=-28>>3;
    System.out.println("e="+e);
    /*
     * 計算機中,數值一律用補碼錶示和儲存的,正數的補碼與原碼相同,負數的補碼為“其反碼+1”
     * 反碼,顧名思義就是取反,對於正數來說,反碼與原碼相同;對於負數來說,反碼為原碼的各位取反(符號位除外)
     * 向右移動三位後:移動的是補碼
     */
}

} 在這裡插入圖片描述 3.4.2.6、條件運算子

/**

  • 測試條件運算子(三元運算子)
  • @author huchaofan

*/ public class TestOperator06 { public static void main(String[] args) { System.out.println("###########測試條件運算子############"); int score = 80; int x=-100; String type = score<60?“不及格”:“及格”; System.out.println(type);

    if(score<60) {
        System.out.println("不及格");
    }else {
        System.out.println("及格");
    }
     
    System.out.println(x>0?1:(x==0?0:-1));//巢狀
     
}

}

3.4.2.7、字串連線符

/**

  • 測試字串連線符
  • @author huchaofan

*/ public class TestOperator05 { public static void main(String[] args) { System.out.println("##########測試字串連線符###########"); String a=“3”; int b=4; int c=5;

    System.out.println(a+b);//34
    System.out.println(b+c);//9,+兩側為數字,為加法運算
    System.out.println(a+b+c);//345,從左向右運算;
    System.out.println(b+c+a);//93
    System.out.println(b+c+a+b+c);//9345
     
    System.out.println("#####################");
    char d='a';
    System.out.println(d);
    System.out.println(d+4);//97+4=101,char+int=int;
}

} 在這裡插入圖片描述