運(yùn)算符:進(jìn)行特定操作的符號凉唐。例:+
表達(dá)式:用運(yùn)算符連的式子叫做表達(dá)式庸追,例:1+2
1.四則運(yùn)算:
???? 加:+
???? 減:-
???? 乘:*
???? 除:/ 被除數(shù) / 除數(shù) = 商 .... 余數(shù)
???? ???? 對于一個整數(shù)的表達(dá)式來說,除法用的是整除台囱。結(jié)果仍為整數(shù)锚国。只看商。不看余數(shù)
???? ???? 只有對于整數(shù)的除法來玄坦,取模運(yùn)算符才有余數(shù)的意義
???? 注意事項:
???? ???? 1.一旦運(yùn)算當(dāng)中有不同類型的數(shù)據(jù)血筑,那么結(jié)果將會是數(shù)據(jù)類型范圍大的那種
例子:
public class PeratorDemo{
???? public static void main(String[] args){
???? ???? //兩個常量直接可以進(jìn)行數(shù)學(xué)運(yùn)算
???? ???? System.out.println(20 + 30);
???? ???? //兩變量之間也可以進(jìn)行數(shù)學(xué)運(yùn)算
???? ???? int a = 20;
???? ???? int b = 30;
???? ???? System.out.println(a - b);
???? ???? //變量和常量之間可以混合使用
???? ???? System.out.println(a * 10);
???? ???? int x = 10 ;
???? ???? int y = 3 ;
???? ???? int result1 = x / y;
???? ???? System.out.println(result1);//3
???? ???? int result2 = x % y ;
???? ???? System.out.println(result2);//余數(shù),模煎楣,1
???? ???? //int + double ---> double + double --->double
???? ???? double result3 = x + 2.5;
???? ???? System.out.println(result3);//12.5
???? }
}
運(yùn)行結(jié)果:
??? 四則運(yùn)算當(dāng)中的加號”+“有三種用法:
??? ??? 1.對于數(shù)值來豺总,那就是加法。
??? ??? 2.對于字符char類型來择懂,再計算之前會被提升為int喻喳,然后再計算。
??? ??? ??? -char類型字符困曙,和int類型數(shù)值表伦,之間的對照關(guān)系表:ASCII,Unicode
?????? 3.對于字符串String(首字母大寫,并不是關(guān)鍵字)來慷丽。加號代表字符串連操作蹦哼。
??? ??? ??? -任何數(shù)據(jù)類型和字符串進(jìn)行連的時候,結(jié)果都會變成字符串
例子:
public class PlusDemo{
???? public static void main(String[] args){
???? ???? //字符串類型的變量基本使用
???? ???? //數(shù)據(jù)類型 變量名稱 = 數(shù)據(jù)值
???? ???? String str1 = "Hello";
???? ???? System.out.println(str1);//Hello
???? ???? System.out.println("Hello"+"Hello");//HelloHello
???? ???? String str2 = "Java";
???? ???? //String + int --->String
???? ???? System.out.println(str2 + 20);//Java20
???? ???? //優(yōu)先問題
???? ???? //String + int + int
???? ???? //String ? + int
???? ???? //String
???? ???? System.out.println(str2 + 20 + 30);//Java2030
???? ???? System.out.println(str2+(20+30));//Java50
???? }
}
運(yùn)行結(jié)果:
2.自增自減運(yùn)算符
自增運(yùn)算符:++
自減運(yùn)算符:--
基本含義:讓一個變量漲一個數(shù)字1要糊,或者讓一個變量降一個數(shù)字1
使用格式:寫在變量名稱之前纲熏,或者寫在一個變量名稱之后
???? -eg:++num , num++
使用方式:
???? 1.單獨(dú)使用:不和其他任何操作混合,自己單獨(dú)成為一個步驟
???? 2.混合使用锄俄,和其他操作混合局劲,例如與賦值混合,或者和打印操作混合奶赠,等
使用區(qū)別:
???? 1.在單獨(dú)使用的時候鱼填,前++和后++沒有任何區(qū)別,也就是:++num;和 num ++;是完全一樣的
???? 2.在混合使用的時候毅戈,有【重大區(qū)別】
???? ???? A.如果是前++苹丸,那么變量立刻+1塑猖,然后拿著結(jié)果進(jìn)行使用【先加后用】
???? ???? B.如果是后++,那么變量先使用谈跛,【然后再讓變量+1】【先用后加】
注意事項:
???? 1.只有變量才能使用自增羊苟、自減運(yùn)算符。常量不可發(fā)生改變感憾,所以不能用蜡励。
例子:
public class PeratorDemo2{
???? public static void main(String[] args){
???? ???? int num1 = 10;
???? ???? System.out.println(num1);
???? ???? ++num1;//單獨(dú)使用,前++
???? ???? System.out.println(num1);//11
???? ???? num1++;//單獨(dú)使用,后++
???? ???? System.out.println(num1);//12
???? ???? System.out.println("================");
???? ???? //與打印操作混合的時候
???? ???? int num2 = 20;
???? ???? //混合使用,先++阻桅,變量立馬上變成21凉倚,然后打印結(jié)果21
???? ???? System.out.println(++num2);//21
???? ???? //混合使用,后++嫂沉,變量先打印成原來的21 稽寒,然后變量+1變成22
???? ???? System.out.println(num2++);//21
???? ???? System.out.println(num2);//22
???? ???? System.out.println("===========");
???? ???? //和賦值操作混合使用
???? ???? int num3 = 30 ;
???? ???? //混合使用,先---,變量先變成29,然后賦值給result1
???? ???? int result1 = -- num3;//result=29
???? ???? System.out.println(result1);//29
???? ???? System.out.println(num3);//29
???? ???? //混合使用趟章,先將num3賦值給result2,再將變量變成28
???? ???? int result2 = num3 --;//將29賦值給result2
???? ???? System.out.println(result2);//29
???? ???? System.out.println(result2);//29
???? ???? System.out.println(num3);//28
???? }
}
運(yùn)行結(jié)果:
3.賦值運(yùn)算符
賦值運(yùn)算符分為:
???? 基本賦值運(yùn)算符:就是一個等號"=",代表將右側(cè)的數(shù)據(jù)交給左側(cè)的變量
???????? int a = 30;
???? 復(fù)合賦值運(yùn)算符:
???? += ???? ???? a += 1 ???? ???? 相當(dāng)于???? ???? a = a + 1
???? -= ???? ???? a -= 1 ???? ???? 相當(dāng)于???? ???? a = a - 1
???? *= ???? ???? a *= 1 ???? ???? 相當(dāng)于 ???? ???? a = a * 1
???? /= ???? ???? a /= 1 ???? ???? 相當(dāng)于 ???? ???? a = a / 1
???? %= ???? a %= 1 ???? ???? 相當(dāng)于 ???? ???? a = a % 1
例子:
public class PeratorDemo3{
???? public static void main(String[] args ){
???? ???? int a = 10;
???? ???? a+=5;//相當(dāng)于 a= a+5 ---->10+5 = 15
???? ???? System.out.println(a);//15
???? ???? int x = 10;
???? ???? x %= 3;//相當(dāng)于 x= x%3 ---->10%3 = 1
???? ???? System.out.println(x);//1
???? ???? byte num = 30;
???? ???? //num = num + 5
???? ???? //num = byte + int
???? ???? //num = int
???? ???? //num = (byte)int
???? ???? num +=5;
???? ???? System.out.println(num);//35
???? }
}
運(yùn)行結(jié)果:
4.比較運(yùn)算符
大于:???? ???? >
小于:???? ???? <
大于等于: ??? >=
小于等于:?? <=
相等: ???? ??? ==
不等于: ???? !=
注意事項:
???? 1.比較運(yùn)算符的結(jié)果一定是一個boolean值杏糙,成立就是true,不成立就是false
???? 2.如果進(jìn)行多次判斷,不能連著寫
???? ???? 數(shù)學(xué)當(dāng)中的寫法 例如:1<x<3
???? ???? 程序中不允許這樣寫
例子:
public class PeratorDemo4{
???? public static void main(String[] args){
???? ???? System.out.println(10 > 5);//true
???? ???? int num1 = 10;
???? ???? int num2 = 12;
???? ???? System.out.println(num1 < num2);//true
???? ???? System.out.println(num2 >= 100);//false
???? ???? System.out.println(num2 <= 100);//true
???? ???? System.out.println(num2 <= 12);//true
???? ???? System.out.println("=============");
???? ???? System.out.println(10 == 10);//true
???? ???? System.out.println(20 != 25);//true
???? ???? System.out.println(20 != 20);//false
???? }
}
運(yùn)行結(jié)果:
5.邏輯運(yùn)算符
與(并且) && 全都是true,才是true,否者就是false
或(或者) || 只要至少一個是true,就是true;全都是false,才是false
非(取反) ! 本來是true,變成false,本來是false,變成true
短路:
???? 與“&&”蚓土,或“||”宏侍,具有短路的效果:如果根據(jù)左邊已經(jīng)判斷得到最終結(jié)果
???? 那么右邊的代碼將不再執(zhí)行,從而節(jié)省一定的性能
注意事項:
???? 1.邏輯運(yùn)算符只能用于boolean值
???? 2.與或需要左右各自有一個boolean值蜀漆,大宋取反只有唯一一個boolean值
???? 3.與谅河、或兩運(yùn)算符,如果有多個條件确丢,可以連續(xù)寫
???? ???? 兩個條件:條件A &&條件B
???? ???? 多個條件:條件A &&條件B &&條件C
例子:
public class LogicDemo{
???? public static void main(String[] args){
???? ???? System.out.println(true && false);// false
???? ???? //true && true ---> true
???? ???? System.out.println(3 < 4 && 10 > 5);//true
???? ???? System.out.println("===============");
???? ???? System.out.println(true || false);//true
???? ???? System.out.println(true || true);//true
???? ???? System.out.println(false || false);//false
???? ???? System.out.println("===============");
???? ???? System.out.println(true);//true
???? ???? System.out.println(!false);//false
???? ???? System.out.println("===============");
???? ???? int a = 10;
???? ???? //false && ......
???? ???? System.out.println(3 > 4&& ++a < 100);//false
???? ???? System.out.println(a);//10
???? ???? System.out.println("================");
???? ???? int b = 10;
???? ???? //true || ......
???? ???? System.out.println(3 < 4 || ++b <100);//true
???? ???? System.out.println(b);//10
???? }
}
運(yùn)行結(jié)果:
6.三元運(yùn)算符
一元運(yùn)算符:只需要一個數(shù)據(jù)就可以進(jìn)行操作的運(yùn)算符绷耍。例如:取反!鲜侥,自增++
二元運(yùn)算符:需要兩數(shù)據(jù)才能進(jìn)行的操作的運(yùn)算符褂始,例如:加法+,賦值=
三元運(yùn)算符:需要三個數(shù)據(jù)才可以進(jìn)行操作的運(yùn)算符
格式:
???? 數(shù)據(jù)類型 變量名稱 = 條件判斷 剃毒?表達(dá)式A : 表達(dá)式B;
流程:
???? 首先判斷條件是否成立:
???? ???? 如果成立為true,那么將表達(dá)式A的值賦值給左側(cè)變量
???? ???? 如果不成立為false,那么將表達(dá)式B的值賦值給左側(cè)變量
注意事項:
???? 1.必須同時保證表達(dá)式A和表達(dá)式B都符合左側(cè)數(shù)據(jù)類型的要求
???? 2.三元運(yùn)算的結(jié)果必須被使用
例子:
public class PeratorDemo5{
???? public static void main(String[] args){
???? ???? int a = 10;
???? ???? int b = 20;
???? ???? //數(shù)據(jù)類型 變量名稱 = 條件判斷 病袄? 表達(dá)式A :表達(dá)式B
???? ???? //判斷a>b是否成立搂赋,如果成立將a的值賦值給max赘阀,如果不成立將b的值賦值給max
???? ???? int max = a > b ? a : b;
???? ???? System.out.println(max);//20
???? ???? //int result = 3 > 4 ? 2.5 : 10;//錯誤寫法
???? ???? //a > b ? a : b;//錯誤寫法
???? }
}
運(yùn)行結(jié)果: