1.運(yùn)算符:進(jìn)行特定操作的符號(hào)。
? ? 表達(dá)式:用運(yùn)算符連起來(lái)的式子叫做表達(dá)式。
2.具體類型:
2.1加減乘除? ? 取模
public class DemoPerator {
public static void main(String[] args) {
//加:
? ? ? ? System.out.println(20 +30);? //兩個(gè)常量可以進(jìn)行運(yùn)算
//減:
? ? ? ? int num1 =10;
? ? ? ? int num2 =20;
? ? ? ? System.out.println(num1 - num2);? //兩個(gè)變量也可以進(jìn)行運(yùn)算
//乘:
? ? ? ? int num3 =10;
? ? ? ? System.out.println(num3 *10);? ? //變量和常量也可以混合運(yùn)算非驮。
//除:
? ? ? ? int num4 =10;
? ? ? ? int numchu =3;
? ? ? ? int result1 = (num4 / numchu);
? ? ? ? System.out.println(result1);? ? //對(duì)于整數(shù)表達(dá)式武翎,除法 / 用的是整除啦粹,只保留商,不保留余數(shù)檐春。
? ? ? ? int result2 = (num4 % numchu);
? ? ? ? System.out.println(result2);? ? //求余數(shù)用 %(取模運(yùn)算符) 計(jì)算。
? ? ? ? System.out.println("================");
? ? ? ? double result3 = num4 +2.5;? ? //int + double-->double + double -->double
? ? ? ? System.out.println(result3);? ? ? //結(jié)果為12.5
? ? }
}
2.3.“+” 的用法
1.對(duì)于數(shù)值來(lái)說(shuō)就是加法么伯。
2.對(duì)于char來(lái)說(shuō)就是轉(zhuǎn)換成int進(jìn)行計(jì)算疟暖。
3.對(duì)于字符串String(首字母大寫)來(lái)說(shuō),加號(hào)“+”代表字符串連接田柔。
4.任何數(shù)據(jù)類型和String相連都是轉(zhuǎn)換成String類型俐巴。
public class DemoStr {
public static void main(String[] args) {
String s1 ="Hello ";
? ? ? ? String s2 ="World";
? ? ? ? String result1 = s1 + s2;
? ? ? ? System.out.println("Hello "+"Java");
? ? ? ? System.out.println(result1);
? ? ? ? System.out.println("============");
? ? ? ? System.out.println(result1+100);
? ? ? ? System.out.println(result1+5.20);
? ? ? ? System.out.println(result1+'A');
? ? ? ? System.out.println(result1+true);
? ? }
}
TIP:優(yōu)先級(jí):小括號(hào)優(yōu)先!
2.4.自增運(yùn)算符硬爆,自減運(yùn)算符欣舵。
? ? 4.1基本含義:讓變量增加一個(gè)數(shù)字1,或者減少一個(gè)數(shù)字1摆屯;
? ? 4.2用法:1.單獨(dú)使用? ?:++num 和 num++沒(méi)有任何區(qū)別
? ? ? ? ? ? ? ? ? ? 2.混合使用? ? :
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? A:++num:馬上變量值+1邻遏,然后拿著結(jié)果進(jìn)行使用。? 【先加后用】
???????????????????????????????? ? ? ? ? ? ?B:num++:? ? 首先使用變量原本的數(shù)值虐骑,然后值再+1准验; 【先用后加】
示例:
public class DemoACnum {
public static void main(String[] args) {
int num =10;
? ? ? ? num++;
? ? ? ? System.out.println("第一次num++: "+num);
? ? ? ? ++num;
? ? ? ? System.out.println("第二次++num "+num);
? ? ? ? System.out.println("===============");
? ? ? ? //與打印操作混合
? ? ? ? int num1 =10;
? ? ? ? System.out.println(num1++);? ? //此時(shí)結(jié)果為10
? ? ? ? System.out.println(num1);? ? ? //再打印一次num1,此時(shí)結(jié)果為11
? ? ? ? System.out.println("===============");
? ? ? ? int num2 =20;
? ? ? ? System.out.println(++num2);? ? //此時(shí)結(jié)果為21
? ? ? ? System.out.println(num2);? ? ? //此時(shí)結(jié)果仍舊是21
? ? ? ? System.out.println("===============");
? ? ? ? int num3 =30;
? ? ? ? int result1 = --num3;
? ? ? ? System.out.println(result1);? ? //此時(shí)result1 = 29
? ? ? ? System.out.println(num3);? ? ? //此時(shí)num3也為29
? ? ? ? System.out.println("===============");
? ? ? ? int num4 =40;
? ? ? ? int result2 = num4--;
? ? ? ? System.out.println(result2);? ? //result2的值為40
? ? ? ? System.out.println(num4);? ? ? //num4的值減一,為39
? ? ? ? System.out.println("===============");
? ? ? ? //混合自增自減分析
? ? ? ? int x =10;
? ? ? ? int y =20;
? ? ? ? int result3 = ++x + y--;
? ? ? ? System.out.println(result3);? ? ? ? //result3:31
? ? ? ? System.out.println(x);? ? ? ? ? ? ? //x:11
? ? ? ? System.out.println(y);? ? ? ? ? ? ? //y:19
? ? }
}
TIP:常量不可以使用自增自減廷没。比如“”20++“”是錯(cuò)誤的糊饱!
2.5 賦值運(yùn)算符
? ? 2.5.1:基本賦值運(yùn)算符:“=” (只有一個(gè)等號(hào))。表示把右邊的值賦值給左邊
? ? 2.5.2:復(fù)合賦值運(yùn)算符:
? ??????????????????????+=: a+=3 ????相當(dāng)于a=a+3
????????????????????????-= : b-=4? ? ?相當(dāng)于b=b-4
????????????????????????*= : c*=5? ? ?相當(dāng)于c=c*5
????????????????????????/= : d/=6? ? ?相當(dāng)于d=d/6
? ? ? ? ? ? ? ? ? ? ? ?%=: e%=7? ?相當(dāng)于e=e%7
public class GiveData {
public static void main(String[] args) {
int a =7;
? ? ? ? a+=3;
? ? ? ? System.out.println(a);? //此時(shí)a=10颠黎;
? ? ? ? a-=4;
? ? ? ? System.out.println(a);? //此時(shí)a=6
? ? ? ? a*=5;
? ? ? ? System.out.println(a);? //此時(shí)a=30
? ? ? ? a/=6;
? ? ? ? System.out.println(a);? //此時(shí)a=5
? ? ? ? a%=7;
? ? ? ? System.out.println(a);? //此時(shí)a=5
? ? }
}
TIP:1.常量不能進(jìn)行賦值運(yùn)算另锋。
? ? ? ? 2.賦值運(yùn)算包含隱式類型轉(zhuǎn)換滞项。
2.6:比較運(yùn)算符
? ? 比較運(yùn)算符有六種:
? ? ? ? ==:比較符號(hào)兩邊數(shù)值是否相等,相等為true,否則為false夭坪。
? ? ? ? <:????比較符號(hào)左邊的數(shù)據(jù)是否小于右邊的數(shù)據(jù)文判,如果小于則為true,否則為false室梅。
? ? ? ? >:????比較符號(hào)左邊的數(shù)據(jù)是否大于右邊的數(shù)據(jù)戏仓,如果大于則為true,否則為false亡鼠。
? ? ? ? <=:????比較符號(hào)左邊的數(shù)據(jù)是否小于或者等于右邊的數(shù)據(jù)赏殃,如果小于則為true,否則為false间涵。
? ? ? ? >=:????比較符號(hào)左邊的數(shù)據(jù)是否大于或者等于右邊的數(shù)據(jù)仁热,如果大于則為true,否則為false勾哩。
? ? ? ? !=:????不等于符號(hào)抗蠢,如果等式兩邊不相等,結(jié)果是true,否則為false钳幅;
public class DemoCompare {?????
public static void main(String[] args) {
System.out.println(10>5);? ? ? //結(jié)果為true
? ? ? ? System.out.println(5>10);? ? ? //結(jié)果為false
? ? ? ? System.out.println("===============");
? ? ? ? int num1 =10;
? ? ? ? int num2 =20;
? ? ? ? System.out.println(num1
? ? ? ? System.out.println(num2
? ? ? ? System.out.println("===============");
? ? ? ? int num3 =30;
? ? ? ? System.out.println(num3>=100);? ? ? //結(jié)果為false
? ? ? ? System.out.println(num3<=100);? ? ? //結(jié)果為true
? ? ? ? System.out.println(num3<=30);? ? ? //結(jié)果為true
? ? ? ? System.out.println("===============");
? ? ? ? System.out.println(10==10);? ? ? ? //結(jié)果為true
? ? ? ? System.out.println(15!=20);? ? ? ? //結(jié)果為true
? ? ? ? System.out.println(20!=20);? ? ? ? //結(jié)果為false
? ? }
}
TIP:1.比較運(yùn)算符的結(jié)果一定是一個(gè)boolean值物蝙,成立就是true,不成立就是false。
? ? ? ? 2.不能連著寫敢艰,比如1<x<3(先判斷1<x為true诬乞,但是true<5就不能判斷了)。
2.7:邏輯運(yùn)算符
? ? ? ? 三種:與钠导、或震嫉、非。
? ? ? ? ? ? ? ? 與(并且):&&? ? ?全部都是true牡属,結(jié)果才是true票堵。否則就是false。
? ? ? ? ? ? ? ? 或(并且):||? ? ? ? 至少有一個(gè)true,結(jié)果就是true逮栅。全都是false,結(jié)果就是false悴势。
? ? ? ? ? ? ? ? 非(取反):!? ? ? ? 結(jié)果相反措伐。本來(lái)是true,加了特纤!就變成false.
public class DemoLuoji {
public static void main(String[] args) {
System.out.println(true&&true);? ? //結(jié)果為true
? ? ? ? System.out.println(true&&false);? ? //結(jié)果為false
? ? ? ? System.out.println("==============");
? ? ? ? System.out.println(true||true);? ? //結(jié)果為true
? ? ? ? System.out.println(true||false);? ? //結(jié)果為true
? ? ? ? System.out.println(false||false);? //結(jié)果為false
? ? ? ? System.out.println("==============");
? ? ? ? System.out.println(!true);? ? ? ? ? //結(jié)果為false
? ? ? ? System.out.println(!false);? ? ? ? //結(jié)果為true
? ? ? ? System.out.println("==============");
? ? ? ? int a =10;
? ? ? ? System.out.println(3>4&&++a<100);? //++a不執(zhí)行,因?yàn)榍鞍氩糠謋alse已經(jīng)結(jié)束
? ? ? ? System.out.println(a);? ? ? ? ? ? ? //a為10
? ? }
}
TIP:
? ? ? ? 1.邏輯運(yùn)算符只能用于boolean值侥加。
? ? ? ? 2.與捧存、或需要左右各有一個(gè)boolean值,但是非只需要有一個(gè)。
? ? ? ? 3.與昔穴、或如果有多種條件可以連續(xù)寫镰官,比如上一小節(jié)1<x<5.寫成 int x = 5; 1<x && x<5
? ? ? ? 4與、或具有短路效應(yīng)吗货,但左邊判斷值成立后泳唠,右邊不再執(zhí)行。
2.7:三目運(yùn)算符
? ? ? ? 2.7.1含義:需要三個(gè)數(shù)據(jù)才可以進(jìn)行操作的運(yùn)算符
? ? ? ? 2.7.2格式:? ? 變量名稱 = 條件判斷 >表達(dá)式A? :? 表達(dá)式B
? ? ? ? 2.7.2流程:1.首先判斷條件是否成立卿操。如果成立警检,將表達(dá)式A賦值給左邊的變量。如果不成立害淤,將表達(dá)式B賦值給左邊的變量。
public class DemoThreefu {
public static void main(String[] args) {
int num1 =10;
? ? ? ? int num2 =20;
? ? ? ? int max = num1 > num2 ? num1 : num2;
? ? ? ? System.out.println(max); //max結(jié)果為大的數(shù)字20
//特殊寫法
? ? ? ? System.out.println(num1 > num2 ? num1 : num2);
? ? }
}
TIP:
? ? ? ? 1.必須同時(shí)保證表達(dá)式A和表達(dá)式B都符合左側(cè)的變量數(shù)據(jù)類型
? ? ? ? 2.三目運(yùn)算符的結(jié)果必須被使用拓售。(如特殊寫法里的打印語(yǔ)句)窥摄,否則會(huì)報(bào)錯(cuò)。