運(yùn)算符是一種特殊的符號(hào),用以表示數(shù)據(jù)的運(yùn)算、賦值和比較等。
1) 算術(shù)運(yùn)算符
(資料圖片僅供參考)
2) 賦值運(yùn)算符
3) 關(guān)系運(yùn)算符 [比較運(yùn)算符]
4) 邏輯運(yùn)算符
5) 位運(yùn)算符 [需要二進(jìn)制基礎(chǔ)]
6) 三元運(yùn)算符
算數(shù)運(yùn)算符是對(duì)數(shù)值類型的變量進(jìn)行運(yùn)算的,在java程序中使用的非常多
//算數(shù)運(yùn)算符 /號(hào)public class Test6{ public static void main(String[] args) { System.out.println(10/4);//2,從數(shù)學(xué)來看是2.5,但是從java來看就是2 System.out.println(10.0/4); double d1 = 10/4; System.out.println(d1);//2.0 }}
2.2.1在java中%的本質(zhì),看一個(gè)公式a%b=a-a/b*b
//取模%//在java中%的本質(zhì),看一個(gè)公式a%b=a-a/b*bpublic class Test6{ public static void main(String[] args) { System.out.println(10%3);//1 System.out.println(-10%3);//-1, -10-(-10)/3*3=-10+9=-1 System.out.println(10%-3);//1, 10-10/(-3)*(-3)=10-9=1 System.out.println(-10%-3);//-1, (-10)-(-10)/(-3)*(-3)=-10+9=-1 }}
--與++規(guī)則一致
前置++,先++后使用
后置++,先使用后++
//運(yùn)算符++//前置++,先++后使用//后置++,先使用后++public class Test6{ public static void main(String[] args) { int i = 10; i++;//11 ++i;//12 System.out.println("i="+i);//12 //前置++ int j = 8; int k = ++j; System.out.println("j="+j+" k="+k);// 9 9 //后置++ int a = 8; int b = a++; System.out.println("a="+a+" b="+b);//9 8 }}
注意:i=i++;//后置++三步走:(1) temp=i;(2) i=i+1;(3)i=temp;
public class Test6{ public static void main(String[] args) { int i=1; i=i++;//三步走:(1) temp=i;(2) i=i+1;(3)i=temp; System.out.println(i);//1 }}
i=++i;//前置++三步走:(1)i=i+1;(2)temp=i;(3)i=temp;注意此式三步走與上式順序不同
//例2public class Test6{ public static void main(String[] args) { int i=1; i=++i;//三步走:(1)i=i+1;(2)temp=i;(3)i=temp;注意此式三步走與上式順序不同 System.out.println(i);//2 }}
//測試輸出public class Test6{ public static void main(String[] args) { int a1=10; int a2=20; int a=a1++; System.out.println("a="+a);//10 System.out.println("a2="+a2);//20 a=--a2; System.out.println("a="+a);//19 System.out.println("a2="+a2);//19 }}
2.思路分析
(1) 使用 int 變量 days 保存 天數(shù)
(2) 一個(gè)星期是 7 天 星期數(shù) weeks: days / 7 零 xx 天 leftDays days % 7
(3) 輸出
//課堂練習(xí)1//假如還有 59 天放假,問:合 xx 個(gè)星期零 xx 天public class Test6{ public static void main(String[] args) { int days=59; int weeks = days/7;//多少個(gè)星期 int leftdays = days%7;//零多少天 System.out.println(weeks+"個(gè)星期零"+leftdays+"天");//8個(gè)星期零3天 }}
課堂練習(xí)2
定義一個(gè)變量保存華氏溫度,華氏溫度轉(zhuǎn)換攝氏溫度的公式為:5/9*(華氏溫度-100),請(qǐng)求出華氏溫度對(duì)應(yīng)的攝氏溫度。 [234.5]
2 思路分析
(1) 先定義一個(gè) double huaShi 變量保存 華氏溫度
(2) 根據(jù)給出的公式,進(jìn)行計(jì)算即可 5/9*(華氏溫度-100)
考慮數(shù)學(xué)公式和 java 語言的特性
(3) 將得到的結(jié)果保存到 double sheShi
3 走代碼
//定義一個(gè)變量保存華氏溫度,華氏溫度轉(zhuǎn)換攝氏溫度的公式為:5/9*(華氏溫度-100),請(qǐng)求出華氏溫度對(duì)應(yīng)的攝氏溫度。 [234.5]public class Test6{ public static void main(String[] args) { double huashi = 234.5; double sheshi = 5.0/9*(huashi-100);//5/9*(華氏溫度-100) 這里的5/9計(jì)算機(jī)直接認(rèn)為的0了所以要用5.0/9 System.out.println("華氏溫度"+huashi+"對(duì)應(yīng)的攝氏溫度是"+sheshi); }}
1) 關(guān)系運(yùn)算符的結(jié)果都是 boolean 型,也就是要么是 true,要么是 false
2) 關(guān)系表達(dá)式 經(jīng)常用在 if 結(jié)構(gòu)的條件中或循環(huán)結(jié)構(gòu)的條件中
//關(guān)系運(yùn)算符public class Test7{ public static void main(String[] args) { int a = 9;//提示: 工作開發(fā)中,不要將變量寫的這么簡單例如 a, b int b = 8; System.out.println(a>b);//T System.out.println(a>=b);//T System.out.println(a<=b);//F System.out.println(ab; System.out.println("flag="+flag);//true }}
2) 關(guān)系運(yùn)算符組成的表達(dá)式,我們稱為關(guān)系表達(dá)式。 a > b
3) 比較運(yùn)算符"=="不能誤寫成"="
用于連接多個(gè)條件(多個(gè)關(guān)系表達(dá)式),最終的結(jié)果也是一個(gè) boolean 值
1) a&b : & 叫邏輯與:規(guī)則:當(dāng) a 和 b 同時(shí)為 true ,則結(jié)果為 true, 否則為 false
2) a&&b : && 叫短路與:規(guī)則:當(dāng) a 和 b 同時(shí)為 true ,則結(jié)果為 true,否則為 false
3) a|b : | 叫邏輯或,規(guī)則:當(dāng) a 和 b ,有一個(gè)為 true ,則結(jié)果為 true,否則為 false
4) a||b : || 叫短路或,規(guī)則:當(dāng) a 和 b ,有一個(gè)為 true ,則結(jié)果為 true,否則為 false
5) !a : 叫取反,或者非運(yùn)算。當(dāng) a 為 true, 則結(jié)果為 false, 當(dāng) a 為 false 是,結(jié)果為 true
6) a^b: 叫邏輯異或,當(dāng) a 和 b 不同時(shí),則結(jié)果為 true, 否則為 false
名稱 語法 特點(diǎn)
短路與&& 條件 1&&條件 2 兩個(gè)條件都為 true,結(jié)果為 true,否則 false
邏輯與& 條件 1&條件 2 兩個(gè)條件都為 true,結(jié)果為 true,否則 false
1) &&短路與:如果第一個(gè)條件為 false,則第二個(gè)條件不會(huì)判斷,最終結(jié)果為 false,效率高
2) & 邏輯與:不管第一個(gè)條件是否為 false,第二個(gè)條件都要判斷,效率低
//&&(短路與)和&(邏輯與)的使用public class Test7{ public static void main(String[] args) { //&&(短路與)的使用 int age = 50; if(age>20 && age<90) { System.out.println("ok100"); } //&(邏輯與)的使用 if(age>20 & age<90) { System.out.println("ok200"); } //區(qū)別 //1) &&短路與:如果第一個(gè)條件為 false,則第二個(gè)條件不會(huì)判斷,最終結(jié)果為 false,效率高 //2) & 邏輯與:不管第一個(gè)條件是否為 false,第二個(gè)條件都要判斷,效率低 int a = 4; int b = 9; //if(a < 1 && ++b < 50) // { //System.out.println("ok300"); //} //System.out.println("a=" + a + " b=" + b);// 4 9 if(a < 1 & ++b < 50) { System.out.println("ok300"); } System.out.println("a=" + a + " b=" + b);// 4 10 }}
名稱 語法 特點(diǎn)
短路或|| 條件 1||條件 2 兩個(gè)條件中只要有一個(gè)成立,結(jié)果為 true,否則為 false
|邏輯或 條件 1|條件 2 只要有一個(gè)條件成立,結(jié)果為 true,否則為 false
(1)||短路或:如果第一個(gè)條件為 true, 則第二個(gè)條件不會(huì)判斷,最終結(jié)果為 true,效率高
(2)| 邏輯或:不管第一個(gè)條件是否為 true,第二個(gè)條件都要判斷,效率低
public class Test7{ public static void main(String[] args) { //||(短路或)的使用 int age = 50; if(age>20 || age<30) { System.out.println("ok100"); } //|(邏輯或)的使用 if(age>20 | age<30) { System.out.println("ok200"); } //區(qū)別 //(1)||短路或:如果第一個(gè)條件為 true, 則第二個(gè)條件不會(huì)判斷,最終結(jié)果為 true,效率高 //(2)| 邏輯或:不管第一個(gè)條件是否為 true,第二個(gè)條件都要判斷,效率低 int a = 4; int b = 9; // if(a > 1 || ++b >4 )//短路或 // { // System.out.println("ok300"); // } // System.out.println("a=" + a + " b=" + b);// 4 9 if(a > 1 | ++b > 4)//邏輯或 { System.out.println("ok300"); } System.out.println("a=" + a + " b=" + b);// 4 10 }}
!取反,真變假,假變真
異或,相同為假,不同為真
//取反!和^異或public class Test7{ public static void main(String[] args) { //!取反,真變假,假變真 System.out.println(60>20);//T System.out.println(!(60>20));//F //異或,相同為假,不同為真 boolean b1 = (10>1)^(3<5); System.out.println("b1="+b1);//F boolean b2 = (10>1)^(3>5); System.out.println("b2="+b2);//T }}
public class Test7{ public static void main(String[] args) { // int x = 5; // int y = 5; // if(x++==6 & ++y==6) // { // x=11; // } // System.out.println("x="+x+"y="+y);//6 6 int x = 5; int y = 5; if(x++==6 && ++y==6) { x=11; } System.out.println("x="+x+"y="+y);//6 5 }}
public class Test7{ public static void main(String[] args) { int x = 5; int y = 5; if(x++==5 | ++y==5) { x=11; } System.out.println("x="+x+"y="+y);//11 6 // int x = 5; // int y = 5; // if(x++==5 || ++y==5) // { // x=11; // } // System.out.println("x="+x+"y="+y);//11 5 }}
public class Test7{ public static void main(String[] args) { boolean x = true; boolean y = false; short z=46; if((z++==46)&&(y=true)) z++; if((x=false)||(++z==49)) z++; System.out.println(z);//50 }}
標(biāo)簽: 華氏溫度 關(guān)系運(yùn)算符 攝氏溫度