運算符
加 +
減 -
乘 *
除 / 整數除以整數,得到的仍是整數,只看商,不看餘數
取模 %
注意事項
一旦運算中有不同類型的數據,結果將會是範圍大的
// int+double --> double +double
double result = a+2.5;
加法
有三種常見用法
- 數值的加法
- 對於char類型,計算之前,char會被提升爲int,然後再計算。char類型與int類型之間的對照關係見ASCII,Unicode
- 對於字符串String來說,加號代表字符串連接操作。任何數據類型和字符串進行連接的時候,結果都會變成字符串。
public class Demo05Plus{
public static void main(String[] args){
String str1 = "Hello";
System.out.println(str1);
String str2 = "World";
System.out.println(str1+str2); // HelloWorld
// String + int --> String
System.out.println(str1+20); // Hello20
// String + int + int
// String + int
// String
System.out.println(str1+20+30); // Hello2030
System.out.println(str1+(20+30)); // Hello50
}
}
自增自減
自增 ++
自減 –
使用格式: ++num,也可以num++
使用方式:
- 單獨使用:不和其他任何操作混合
- 混合使用:和其他操作混合,例如與賦值混合,或與打印操作混合
使用區別:
- 單獨使用時,前++與後++沒有任何區別
- 混合使用時,有【重大區別】
A、【前++】,那麼這個變量【立刻馬上+1】,然後拿着結果進行使用 【先加後用】
B、【後++】,那麼首先使用變量本來的數值,然後再讓變量+1 【先用後加】
–同理
注意事項:
只有變量才能使用自增、自減運算符,常量不能
public class Demo06Operator{
public static void main(String args[]){
int num1 = 10;
System.out.println(num1);
++num1; //單獨使用
System.out.println(num1);// 11
num1++;
System.out.println(num1);// 12
System.out.println("===============");
System.out.println(++num1);//前++,結果爲13
System.out.println(num1++);//後++,結果爲13
System.out.println(num1);// 14
}
}
賦值運算符
= 、 += 、 -= 、 *= 、 /=、 %=
注意事項
- 只有變量才能使用賦值運算符,常量不能
- 複合運算符中隱含了一個強制類型轉換
比較運算符
==、<、>、<=、>=、!=
注意事項:
- 比較運算符的結果一定是boolean值
- 如果進行多次判斷,不能連着寫 ,如1<x<3,可以連着寫 1<x&&x<3
邏輯運算符
連接兩個boolean值
與 &&
或 ||
非 !
注意事項:
- 與“&&”,或“||”,具有短路效果,如果根據左邊已經可以判斷得到最終結果,那麼右邊的代碼不再執行,從而節省一定的性能
- 與“&&”,或“||”,如果有多個條件,可以連續寫
條件A&&條件B&&條件C
三元運算符
一元運算符:如取反!、自增++、自減–
二元運算符:如加法+、賦值=
三元運算符:
格式:
數據類型 變量名稱 = 條件判斷 ? 表達式A:表達式B
條件判斷爲true,將表達式A的值賦給左側的變量,繁殖將表達式B的值賦給左側的變量
注意事項:
- 必須同時保證表達式A和表達式B都符合左側數據類型的要求。
- 三元運算符的結果必須被使用
方法(面向對象)
定義一個方法的格式:
public static void 方法名稱(){
方法體
}
方法名稱的命名規則和變量一樣,使用小駝峯
注意事項:
- 方法定義的先後順序無所謂
- 方法的定義不能產生嵌套包含關係
- 方法定義好了之後不會執行,如果要執行,一定要進行方法的【調用】
如何調用方法:
方法名稱();
public class Demo11Method{
public static void main(String[] args){
//調用廚子的方法
cook();
}
public static void farmer(){
System.out.println("農民");
}
public static void seller(){
System.out.println("小商販");
}
public static void cook(){
System.out.println("廚子");
}
public static void me(){
System.out.println("我");
}
}
jshell:輕量級
是一種命令解析器,在cmd窗口輸入jshell即可進入
編譯器的兩點優化
選擇結構
if-else if-else格式
if(關係表達式){
執行語句1;
}else if (判斷條件2){
執行語句2;
}
...
else if (判斷條件n){
執行語句n;
}else{
執行語句n+1;
}
switch格式
switch(表達式) {
case 常量值1:
語句體1;
break;
case 常量值2:
語句體2;
break;
...
default:
語句體n+1;
break;
}
switch語句注意事項
- 多個case後面的數值不能重複
- switch後面小括號當中只能是下列數據類型:
基本數據類型:byte/short/char/int
引用數據類型:String字符串、enum枚舉 - switch語句格式可以很靈活:前後順序可以顛倒,break語句還可以省略
匹配哪一個case就從哪一個位置向下執行,直到遇到了break或整體結束爲止,下面優case就穿透他