public class HelloWorld{
public static void main(String[] args){
int a = 10;
int b = 20;
System.out.println(a+b);
}
}
/取結果的商,%取結果的餘數
整數操作只能得到整數,要想得到小數,必須有浮點數參與運算。
char型別參與算術運算,使用的是計算機底層對應的十進制數值。
//結果爲97+1
public class HelloWorld{
public static void main(String[] args){
char ch1 = 'a';
System.out.println(ch1 + 1);
}
}
提升規則:
byte型別,short型別和char型別將被提升到int型別,不管是否有其他型別參與運算。
整個表達式的型別自動提升到與表達式中最高等級的運算元相同的型別
等級順序:byte,short,char --> int --> long --> float --> double
強制轉換:
byte b1 = 10;
byte b2 = 20;
// byte b3 = b1 + b2;
// 該行報錯,因爲byte型別參與算術運算會自動提示爲int,int賦值給byte可能損失 精度
int i3 = b1 + b2;
// 應該使用int接收
byte b3 = (byte) (b1 + b2);
// 或者將結果強制轉換爲byte型別
直接拼接
注意:
擴充套件的賦值運算子隱含了強制型別轉換。
short s = 10;
s = s + 10;
// 此行程式碼報錯,因爲運算中s提升爲int型別,運算結果int賦值給short可能損失精度
s += 10;
// 此行程式碼沒有問題,隱含了強制型別轉換,相當於 s = (short) (s + 10);
注意用法,x = i++ 和 x = ++i,前者先賦值,後者自增完再賦值。
關係運算符的結果都是boolean型別,要麼是true,要麼是false。
與、或、互斥或、非
短路邏輯運算子
&&短路與
||短路或
int x = 3;
int y = 4;
System.out.println((x++ > 4) & (y++ > 5)); // 兩個表達都會運算
System.out.println(x); // 4
System.out.println(y); // 5
System.out.println((x++ > 4) && (y++ > 5)); // 左邊已經可以確定結果爲false,右邊不參與運算 System.out.println(x); // 4
System.out.println(y); // 4
三元運算子語法格式:
關係表達式 ? 表達式1 : 表達式2;
解釋:問號前面的位置是判斷的條件,判斷結果爲boolean型,爲true時呼叫表達式1,爲false時呼叫表達式2。其
邏輯爲:如果條件表達式成立或者滿足則執行表達式1,否則執行第二個。
int a = 10;
int b = 20;
int c = a > b ? a : b; // 判斷 a>b 是否爲真,如果爲真取a的值,如果爲假,取b的值
我們可以通過 Scanner 類來獲取使用者的輸入。使用步驟如下:
1、導包。Scanner 類在java.util包下,所以需要將該類匯入。
import java.util.Scanner;
2、建立Scanner物件。
Scanner sc = new Scanner(System.in);// 建立Scanner物件,sc表示變數名,其他均不可變
3、接收數據
int i = sc.nextInt(); // 表示將鍵盤錄入的值作爲int數返回。
順序結構
分支結構(if, switch)
回圈結構(for, while, do…while)