運算子
一:二元運算子
public class Demo01 {
public static void main(String[] args) {
//二元運算子
//Ctrl+D: 複製當前行到下一行
int a=10;
int b=20;
int c=25;
int d=25;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b);
}
}
二:資料型別自動轉換
public class Demo02 {
public static void main(String[] args) {
long a=123456789123456L;
int b=123;
short c=10;
byte d=8;
System.out.println(a+b+c+d);//Long
System.out.println(b+c+d);//int
System.out.println(c+d);//int
}
}
三:關係運算子
public class Demo03 {
public static void main(String[] args) {
//關係運算子返回的結果:正確 ,錯誤, 布林值
//if
int a=10;
int b=20;
int c=21;
//% 取餘數
System.out.println(c%a); //c/a 21/10 =2餘1
System.out.println(a>b);
System.out.println(a<b);
System.out.println(a==b);
System.out.println(a!=b);
}
}
四:自增自減運算子a++,++a
public class Demo04 {
public static void main(String[] args) {
//++ -- 自增 自減 一元運算子
int a=3;
int b=a++; //執行完這行程式碼後,先給b賦值,再自增。
// a=a+1
System.out.println(a);
System.out.println(b);
// a++ a=a+1
int c=++a; //執行完這行程式碼前,先自增,再給c賦值
System.out.println(a);
System.out.println(b);
System.out.println(c);
//冪運算 2的3次方 2*2*2=8 很多運算,我們會使用一些工具類來操作。
double pow = Math.pow(2, 3);
System.out.println(pow);
for (int i = 0; i <10 ; i++) {
a+=a;
}
System.out.println(a);
}
}
五:邏輯運算子
public class Demo05 {
public static void main(String[] args) {
//與(and) 或(or) 非(取反)
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));//如果是真,則為假,如果為假則變為真。
//短路運算
int c=5;
boolean d=(c<4)&&(c++<4); //c<4是假,後面就不會執行。在與運算中。
System.out.println(d);
System.out.println(c);
}
}
六:邏輯運算子
public class Demo06 {
public static void main(String[] args) {
/* 1為真,0為假
* 位運算子:& ,|,^ , ~ ,>> ,<< ,>>>(瞭解!!!)
* A = 0011 1100
* B = 0000 1101
* -----------------------------------------------
A&B =0000 1100 兩個都為真才為真,一假則假
A|B =0011 1101 一真為真,同假為假
A^B =0011 0001 異則為真,同則為假
~B =1111 0010 取反
2*8 = 16 2*2*2*2
效率極高
<< *2
>> /2
0000 0000 0
* 0000 0001 1
* 0000 0010 2
* 0000 0011 3
* 0000 0100 4
* 0000 1000 8
* 0001 0000 16
* */
System.out.println(2<<3);
}
}
七:a+=b,a-=b
public class Demo07 {
public static void main(String[] args) {
int a=10;
int b=20;
a+=b; //a=a+b
a-=b; //a=a-b
System.out.println(a);
//字串連線符 + ,String
System.out.println(""+a+b); //如果字串在前面,在+運算子兩側只要出現String型別,他會把另外運算元,都轉換成Sting在進行連線
System.out.println(a+b+""); //如果字串在後面,前面的依舊進行運算。
}
}
三元運算子
public class Demo08 {
//三元運算子
public static void main(String[] args) {
// x ? y : z
//如果x==ture ,則結果為y,否則結果為z
int score=80;
String type = score < 60 ? "不及格":"及格"; //必須掌握的。
System.out.println(type);
}
}
八:運算子的優先順序