Java複習運算子上海快三搭建和表示式
運算子上海快三搭建 dsluntan.com Q:3393756370 VX:17061863513主要是指進行特定操作的符號。如:+。
表示式是指用運算子連線起來的式子叫做表示式。如:20+5,a+b。
Java世界中運算子主要分為以下幾類:算術運算子、賦值運算子、比較運算子、邏輯運算子和三元運算子。
一、 算術運算子
加(+):四則運算的加法
減(-):四則運算的劍法
乘(*):四則運算的乘法
除(/):四則運算的除法
取模(%):常說的求餘數
注意事項:
一旦運算當中有不同型別的資料,那麼結果將會是資料類型範圍大的那種。
只有對於整數的除法來說,取模運算才有餘數的意義。
在進行運算時,首先計算得到表示式的結果,然後在進行後續操作。
四則運算的加號對於char型別來說,在計算之前,char型別會被提升為int型別,然後在進行計算。
對於字串String型別來說,加號代表字串連線操作。並且任何資料型別和字串進行連線操作,結果都會變成字串。
可以看一下程式碼示例:
public class TestOperator {
public static void main(String[] args){
//兩個常量之間的數學運算
System.out.println(20+30);
//兩個變數之間的數學運算
int a = 20;
int b = 5;
System.out.println(a-b);
//並且變數和常量之間可以混合使用
System.out.println(a*10);
int x = 10; int y = 3; //因為x和y都是整數,除數的結果也是整數。所以結果會進行截斷。 int result1 = x/y; System.out.println(result1); int result2 = x%y; System.out.println(result2); //浮點數也可以進行運算 double result3 = x + 2.5; System.out.println(result3);
}
}
算術運算子還有兩種特殊的運算子,就是自增運算子(++)、自減運算子(–)。
基本含義:
自增運算子讓變數的值增加1,自減運算子是讓變數的值減1。
使用格式:
寫在變數名稱前,或者寫在變數名稱之後。如:++num或num++。
使用方式:
單獨使用:不和其他任何操作混合,自己獨立稱為一個步驟。
混合使用: 和其他操作混合,例如與賦值混合,或者與列印操作混合等。
兩種使用方式區別:
在單獨使用的時候,前++和後++沒有任何區別。也就是說++num和num++結果是完全一樣的。
在混合使用的時候,有重大區別:
A. 如果是前++,那麼變數馬上加1,然後拿著結果進行使用。可以稱作,先加後用。
B. 如果是後++,那麼首先使用變數本來的數值,然後在讓變數加1,可以稱作,先用後加。
注意事項:
只有變數才能使用自增、自減運算子,常量不可用。
請看以下示例:
public class TestPlus {
public static void main(String[] args) {
//字串型別的變數基本使用
//資料型別 變數名稱 = 資料值;
String str1 = “Hello”;
System.out.println(str1);
System.out.println(“Hello” + “World”);
String str2 = "Java";
System.out.println(str2 + 20);
//優先順序問題
System.out.println(str2 + 20 + 30);
//自增自減
int num1 = 10;
System.out.println(num1);
++num1;//單獨使用,前++
System.out.println(num1);
num1++;//單獨使用,後++
System.out.println(num1);
int num2 = 20;
//混合使用,前++,變數馬上變為21,然後列印輸出
System.out.println(++num2);
System.out.println(num2);
int num3 = 30;
//混合使用,後++,先使用變數原值30,列印輸出,然後變數加1,變為31.
System.out.println(num3++);
System.out.println(num3);
int num4 = 40;
//混合使用,前--,變數馬上變為39,然後賦值result1
int result1 = --num4;
System.out.println(result1);
System.out.println(num4);
int num5 =50;
//混合使用,後--,先使用變數原值50,賦值result2,然後變數減1,變為49.
int result2 = num5--;
System.out.println(result2);
System.out.println(num5);
int x = 10;
int y = 20;
int result3 = ++x + y--;
System.out.println(result3);
System.out.println(x);
System.out.println(y);
}
}
二、 賦值運算子
賦值運算子分為兩種:
一是基本賦值運算子:就是一個等號“=”,代表將右側的資料交給左側的變數。
二是複合賦值運算子:
+=: 例如 a += 1 相當於 a = a + 1
-=: 例如 b -= 4 相當於 b = b - 4
=: 例如 c = 5 相當於 c = c * 5
/=: 例如 d /= 6 相當於 d = d / 6
%=: 例如 e %= 7 相當於 e = e % 7
注意事項:
只有變數才能使用賦值運算子,常量不能進行賦值。
複合賦值運算子其中隱含了一個強制型別轉換。
請看示例:
public class TestEqual{
public static void main(String[] args) {
int a = 10;
a += 5;
System.out.println(a);
int x = 10;
x %= 3;
System.out.println(x);
byte num = 30;
//num += 5 相當於 num = num +5;
//也就是byte = byte + int;
//右邊表示式會先把byte自動轉換稱為int,最後進行強制轉換成byte.
//所以複合賦值運算子幫我們做了一個強制型別轉換
num += 5;
System.out.println(num);
}
}
三、 比較運算子
== 比較符號兩邊資料是否相等,相等結果就是true。
< 比較符號左邊的資料是否小於右邊的資料,如果小於,結果就是true。
比較符號左邊的資料是否大於右邊的資料,如果大於,結果就是true。
<= 比較符號左邊的資料是否小於等於右邊的資料,如果小於等於,結果就是true
= 比較符號左邊的資料是否大於等於右邊的資料,如果大於等於,結果就是true。
!= 比較符號兩邊資料是否相等,不相等結果就是true。
注意事項:
比較運算子的結果一定是一個boolean值,成立就是true,不成立就是false。
如果進行多次判斷,不能連著寫。
public class TestCompare {
public static void main(String[] args) {
System.out.println(10>5);
iint num1 = 10;
int num2 = 15;
System.out.println(num1 < num2);
System.out.println(num1 >= 30);
System.out.println(num2 <= 50);
System.out.println(num2 <= 15);
System.out.println(num2 == 15);
System.out.println(num1 != 15);
//java不支援連著進行比較,可以使用下節的邏輯比較符進行。
//System.out.println(4 < num1 < 20);
}
}
四、 邏輯運算子
與 && 全都是true,才是true; 否則就是false
或 || 至少一個是true, 就是true; 全都是false,才是false
非 ! 本來是true,變成false;本來是false,變成true。
注意事項:
邏輯運算子只能用於Boolean值。
與、或需要左右各自有一個Boolean值,但是取反只要有唯一的一個Boolean值即可。
與、或兩種運算子,如果有多個條件,可以連續寫。
與、或具有短路效果:如果根據左邊已經可以判斷得到最終結果,那麼右邊的程式碼將不再執行,從而節省效能。
五、 三元運算子
Java中根據資料的多少可以分為:
一元運算子: 只需要一個數據就可以進行操作的運算子。例如:取反!、自增++、自減–
二元運算子: 需要兩個資料才可以進行操作的運算子。例如:加減乘除
三元運算子: 需要三個資料才可以進行操作的運算子。
格式: 資料型別 變數名稱 = 條件判斷 ? 表示式A : 表示式B
流程:
首先判斷條件是否成立:
如果成立為true,那麼將表示式A的值賦給左側的變數
如果不成立為false,那麼將表示式B的值賦給左側的變數
注意事項:
必須同時保證表示式A和表示式B都符合左側資料型別的要求。
三元運算子的結果必須被使用。
public class TestThreeVar {
public static void main(String[] args) {
int a = 10;
int b = 20;
int max;
//判斷a>b是否成立,如果成立將a的值賦給max,如果不成立將b的值賦給max.
max = a > b ? a : b;
System.out.println(max);
//兩個表示式的值必須同時符合左側資料型別的要求。
//int result = 3 > 4 ? 2.4 : true;
//並且三元表示式不能直接使用
//a > b ? a : b
}
}