表達式
在Java中,表達式是由運算符和操作數組成的。
比如,我們可以把下面的都稱爲表達式:
5
num1
num1+num2
sum=num1+num2
運算符
Java的運算符包括:算術運算符、賦值運算符、關係運算符、邏輯運算符、條件運算符、位運算符。
如下圖所示:
算術運算符
算術運算符主要用於進行基本的算術運算,如加法、減法、乘法和除法等。
public class MathDemo {
public static void main(String[] args) {
int num1=10,num2=5;
int res; //存放結果
//加法
res = num1 + num2;
System.out.println(num1+"+"+num2+"="+res); // 10+5=15
//注意區分是否爲字符串連接
System.out.println(num1+num2); //15
System.out.println(""+num1+num2); // 105
//減法
res = num1 - num2;
System.out.println(num1+"-"+num2+"="+res); // 10-5=5
//乘法
res = num1*num2;
System.out.println(num1+"*"+num2+"="+res); // 10*5=50
//除法
res = num1/num2;
System.out.println(num1+"/"+num2+"="+res); // 10/5=2
//分子分母都是整型時,結果爲整除後的結果
System.out.println(13/5); //2
System.out.println(13.0/5); //2.6
//求餘數
res = 13%num2;
System.out.println("13%"+num2+"="+res); //13%5=3
System.out.println("13.5%"+num2+"="+13.5%num2); //13.5%5=3.5
}
}
自增自減運算符
++ 自增1 int n=3; n++; int n=4; ++n;
-- 自減1 int n=3; n--; int n=4; --n;
public class MathDemo1 {
public static void main(String[] args) {
//x++
int x = 4;
int y = (x++)+5;
System.out.println("x="+x+",y="+y); //x=5,y=9
//++x
x = 4;
y = (++x)+5;
System.out.println("x="+x+",y="+y); //x=5,y=10
//x--
x = 4;
y = (x--)+5;
System.out.println("x="+x+",y="+y); //x=3,y=9
//--x
x = 4;
y = (--x)+5;
System.out.println("x="+x+",y="+y); //x=3,y=8
}
}
賦值運算符
格式:變量=表達式;
例:int n=3; //將3賦值給變量n
注意:賦值運算符是從右往左運算!
double d=123.4; double d1=d;
錯誤的寫法:double d; 123.4=d;
注意:賦值運算符的左邊不能是常量!
複合賦值運算符
關係運算符
比較運算符用於判斷兩個數據的大小,如大於、小於、等於。
比較的結果是一個布爾值。
注意:運算符必須在英文輸入法狀態下輸入。
例:
'A' > 'B' 結果爲false,比較的是兩個字符的ASCII值;
5!=6 結果爲true,比較兩個數值是否相等;
true == false 結果爲false , 兩個布爾值不相等;
float f = 5.0f; long l = 5; f==l; 結果爲true,浮點數與整數進行比較,只要值相等就返回true。
關係運算符主要用於條件語句和循環語句中的判斷條件。而條件結構就是根據不同的條件去執行不同的操作。
條件結構
對於條件結構,我們需要注意兩點:
1)如果 if 或 else 語句後面只有一條語句,可以不加大括號,否則必須加大括號;
2)if後面小括號中的表達式結果必須是布爾值。
簡單if語句的格式:
if(條件爲true){
<語句塊>
}
if-else語句的形式
if(條件爲true){
<語句塊>
} else {
<語句塊>
}
public class ConditionDemo {
public static void main(String[] args) {
//例:判斷一個整數是奇數還是偶數,並將結果打印輸出
//從鍵盤接收數據
System.out.println("請輸入一個整數:");
Scanner s = new Scanner(System.in);
int n = s.nextInt();
if (n%2 == 0) {
System.out.println(n+"是偶數");
} else {
System.out.println(n+"是奇數");
}
}
}
邏輯運算符
邏輯運算符用來連接一個或多個條件,並判斷這些條件是否成立。
邏輯運算符的結果是布爾類型。
注意:邏輯運算符的操作數都是布爾類型的。
邏輯“與”運算符
我們可以用 & 和 && 表示邏輯與。
& 和 && 使用的時候是有區別的,我們通過下面的例子進行說明:
&運算符
int n=3;
boolean b= (3>7) & ((n++) < 2) 問:b=?,n=?
結果 b=false n=4
&&運算符
int n=3;
boolean b= (3>7) && ((n++) < 2) 問:b=?,n=?
結果 b=false n=3
&&運算符又叫短路運算符,如果第一個表達式的值就能決定表達式最後的結果,運算符右邊的表達式就不再計算了。
邏輯“或”運算符
我們可以用 | 和 || 表示邏輯或。同樣的, | 和 || 使用的時候也是有區別的。
|運算符
int n=3;
boolean b= (3<7) | ((n++) < 2) 問:b=?,n=?
結果 b=true n=4
||運算符
int n=3;
boolean b= (3<7) || ((n++) < 2) 問:b=?,n=?
結果 b=true n=3
||運算符又叫短路運算符,如果第一個表達式的值就能決定表達式最後的結果,運算符右邊的表達式就不再計算了。
邏輯“非”運算符(!運算符)
該運算符對原條件的結果進行取反。
例:!(3<5) ,結果爲 false 。
條件運算符
Java中的條件運算符是三目運算符。
語法:
布爾表達式?表達式1 : 表達式2
當布爾表達式的值爲true,則返回表達式1的值,否則返回表達式2的值。
如:
String word = (3 < 5) ? "Yes" : "No"; //word值爲 Yes
運算符的優先級
當一個表達式中出現多個運算符時,我們需要根據運算符的優先級,來確定表達式的執行順序。
Java中的運算符優先級如下圖所示,根據左側的箭頭指向,運算符的優先級從高到低: