java基礎--運算子
阿新 • • 發佈:2022-04-19
算數運算子
package week01;
public class Operator {
public static void main(String[] args) {
//最高精度都是int 所以 答案是2
System.out.println(10/4);
//高度精度還是int但是算完了還要賦值給double型別所以是2.0
double d = 10/4;
System.out.println(d);
//在java % 的本質是 a - a / b * b;
// a/b除數 再*b就是除去了多少的數字,最後用總數減去就是餘數
System.out.println(10%3);
System.out.println(-10%3);
//10 - 10/(-3)*(-3)
System.out.println(10%-3);
System.out.println(-10%-3);
//總結前面的如果是負數拿結果就是負數,因為你a-(...),a是絕對值最大的哇,怎麼都掰不過來的
//自增表示式
int j = 8,i = 8;
int k = j++;//k = j,j = j + 1;
int h = ++i;//i = i + 1,h = i;
System.out.println(k + " " +h);
//練習題
int p = 1;
p = p ++;//p = 1,p = p + 1 ×
//程式執行的時候會有一個temp,temp = i,i = i + 1;i = temp;
System.out.println(p);
int g = 1;
g = ++g;//g = g + 1,temp = g,g = temp;
System.out.println(g);
}
}
關係運算符
邏輯運算子號
package week01;
public class LogicOperator {
public static void main(String[] args) {
//短路與,邏輯與
int a = 1;
int b = 9;
if( a > 5 && ++b < 5)
{
System.out.println("OK111");
}
System.out.println("a = " + a + "b = " + b);
if(a > 5 & ++b < 5)
{
System.out.println("OK222");
}
System.out.println("a = " + a + "b = " + b);
//兩者的雖然都可以進行判斷但是短路呢短路,一個不通過就直接短路不運行了,但是&不是這樣子的他是都進行判斷不會終止的
//短路或者,邏輯或
int c = 1;
int d = 9;
if( c < 5 || ++d < 5)
{
System.out.println("OK333");
}
System.out.println("c = " + c + "d = " + d);
if(c < 5 | ++d < 5)
{
System.out.println("OK444");
}
System.out.println("c = " + c + "d = " + d);
//還是相同道理短路或判斷完第一個如果正確就不判斷了
//^邏輯異或
//相等就是false,不相等是true
System.out.println((10 > 1) ^ (1 > 6));
}
}
賦值運算子
public static void main(String[] args) {
//複合運算子可以自動轉換資料型別
byte b = 2;
b += 2;
//等價於b =(byte)(b + 2);
System.out.println(b);
//包括b++也是同理底層有一個型別轉換
}
三元運算子
package week01;
public class TernaryOperator {
public static void main(String[] args) {
int a = 10;
int b = 99;
int res = a > b ? a++ : b--;//等於了99,然後才是b = b - 1;
//三元運算的話還是得運算的不會終止的
System.out.println(res + " " + b + " " + a);
//三元運算子底層就是if else 語句 ,你可以想一想if else語句肯定判斷完了之後執行條件下的語句
int l = (int) (a > b ? 1.1 : 3.4);
System.out.println(l);
}
}
運算子優先順序
識別符號