Java基礎語法—運算子
阿新 • • 發佈:2022-03-28
算術運算子+,-,*,/,%,++,--
package opretor; public class Demo01 { public static void main(String[] args) { //二元運算子 //ctrl + D 複製當前行到下一行 int a = 10; int b = 20; int c = 25; System.out.println(a+b);//30 System.out.println(a-b);//-10 System.out.println(a*b);//200 System.out.println(b/a);//2 System.out.println(c%a);//5 System.out.println(a/b);//0 System.out.println(a/(double)b);//0.5 } }
運算中有long型別,則結果為long型別,否則結果為int;同理,運算中有double型別,則結果為double型別,否則結果為float
public class Demo02 { public static void main(String[] args) { long a = 1237867823641L; 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 double e = 0.0001; float f = 0.1F; float g = 0.2F; System.out.println(e+f);//double System.out.println(g+f);//float } }
++ -- 自增,自減,一元運算子
int b = i++; 執行完這段程式碼後,先給b賦值,再自增
int b = ++i; 執行完這段程式碼後,先自增,再給b賦值
public class Demo04 { public static void main(String[] args) { //++ -- 自增,自減,一元運算子 int a = 1; int b = 6; System.out.println(a);//1 System.out.println(a++);//1 System.out.println(a);//2 System.out.println(++a);//3 System.out.println(a);//3 System.out.println("====================="); System.out.println(b);//6 System.out.println(b---5);//1 System.out.println(b);//5 System.out.println(--b+1);//5 //冪運算 2^3 2*2*2 = 8 //很多運算,我們會使用一些工具類來操作 double pow = Math.pow(2, 3); System.out.println(pow); } }
賦值運算子=
關係運算符>,<,>=,<=,==,!=,instanceof
關係運算符返回的結果:正確 錯誤 布林值
public class Demo03 {
public static void main(String[] args) {
//關係運算符返回的結果:正確 錯誤 布林值
int a = 10;
int b = 20;
System.out.println(a>b);//false
System.out.println(a<b);//true
System.out.println(a==b);//false
System.out.println(a!=b);//true
}
}
邏輯運算子 &&,||,!
邏輯與運算(&&):兩個變數都為真,結果才為true
邏輯或運算(||):兩個變數有一個為真,結果為true
邏輯非運算(!):如果為真,則為false,如果為假,則為true
//邏輯運算子
public class Demo05 {
public static void main(String[] args) {
// 與(and) 或(or) 非(取反)
boolean a = true;
boolean b = false;
System.out.println("a&&b:"+(a&&b));//a&&b:false
System.out.println("a||b:"+(a||b));//a||b:true
System.out.println("!(a&&b):"+!(a&&b));//!(a&&b):true
//短路運算
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(d);//false
System.out.println(c);//5 說明沒執行c++
}
}
位運算子 &,|,^(取反),~,>>(右移),<<(左移),>>>
*重要知識點:<< 即為 2;>> 即為 /2
public class Demo06 {
public static void main(String[] args) {
/*
A = 0011 1100
B = 0000 1101
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001 相同為0,不同為1
~B = 1111 0010
面試題:2*8怎麼算最快
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
2*8 = 16
<< *2
>> /2
2*2*2*2 = 2<<3
*/
System.out.println(2<<3);//16
System.out.println(7<<2);//28
}
}
條件運算子 ? :
public class Demo08 {
public static void main(String[] args) {
//三元運算子
// x ? y : z 如果x==true,則結果為y,否則結果為z
int score = 80;
String type = score <60 ? "不及格" : "及格";
System.out.println(type);//及格
}
}
擴充套件運算子 +=,-=,*=,/=
public class Demo07 {
public static void main(String[] args) {
int a = 10;
int b = 20;
a+=b;//a = a+b
System.out.println(a);//30
a-=b;//a = a-b
System.out.println(a);//10
//字串連線符 +運算子兩側,只要有一方出現String,會把另一側都轉換成String,再進行聯結。
System.out.println(a+b);
System.out.println(""+a+b);//1020
System.out.println(a+b+"");//30
System.out.println(a+b+""+a+b);//301020
//小結:如果""在前邊,則後邊不進行運算;如果""在後邊,則先運算,再連線。
}
}
擴充套件
運算子優先順序 ()最優先,最好就是把想先執行的放在()裡