Java基础运算符
Java基礎第三天
1.1賦值運算符
符號: =
?(1)當“=”兩側數據類型不一致時,可以使用自動類型轉換或使用強制類型轉換原則進行處理。
??(2)支持連續賦值。
?
擴展賦值運算符: +=, -=, *=, /=, %=
?
思考1: short s = 3;
?????????s=s+2; ?①
?????????s+=2; ???②
????????①和②有什么區別?
擴展賦值運算符不改變數據類型
?
?
思考2:
boolean b1 = false;
????????//區分好==和=的區別。
????????if(b1=true)
System.out.println("結果為真");
????????else
System.out.println("結果為假");
思考3:
int i = 1;
i *= 0.1;
System.out.println(i);//
i++;
System.out.println(i);//
案例:
//賦值運算符:= ?+= ?-= ?*= ?/= ?%=
class?GetValue? {public?static?void?main(String[]?args)?{//int?i2?=?10;//i2?+=?3;//i2?-=?3;//i2?*=?3;//i2?/=?3;//i2?%=?3;//System.out.println(i2);/*boolean?b1?=?false;if(b1==true){System.out.println("結果為真");}else{System.out.println("結果為假");}int?i?=?1;i?*=?0.1;System.out.println(i);i++;System.out.println(i);int?i1?=?10;i1?+=?3;short?s?=?10;s=?(short)(s+1);int?i2?=?12;i2?%=?5;System.out.println(i1);System.out.println(s);System.out.println(i2);*/boolean?b1?=?false;if(b1==true){System.out.println("結果為真");}else{System.out.println("結果為假");}} }1.2比較運算符
比較運算符的結果都是boolean型,也就是要么是true,要么是false。
比較運算符“==”不能誤寫成“=” 。
1.3邏輯運算符
&—邏輯與 ????????| —邏輯或 ????????!—邏輯非
&& —短路與 ?????|| —短路或 ???????^ —邏輯異或?
邏輯運算符用于連接布爾型表達式,在Java中不可以寫成3<x<6,應該寫成x>3 & x<6 。
“&”和“&&”的區別:
?????單&時,左邊無論真假,右邊都進行運算;
?????雙&時,如果左邊為真,右邊參與運算,如果左邊為假,那么右邊不參與運算。
“|”和“||”的區別同理,||表示:當左邊為真,右邊不參與運算。
異或( ^ )與或( | )的不同之處是:當左右都為true時,結果為false。
??????理解:異或,追求的是“異”!
案例:
//邏輯運算符:??&??&&?|?||?!?^ class?TestLogic? {public?static?void?main(String[]?args)?{/*int?x?=?1;int?y?=?1;if(x++==2&++y==2){x=7;}System.out.println("x="+x+",y="+y);//x=2,y=2int?x?=?1,y?=?1;if(x++==2&&++y==2){x?=?7; }System.out.println("x="+x+",y="+y);//x=2,y=1int?x?=?1,y?=?1;if(x++==1|++y==1){x?=?7; }System.out.println("x="+x+",y="+y);//x=7,y=2int?x?=?1,y?=?1;if(x++==1||++y==1){x?=?7; }System.out.println("x="+x+",y="+y);//x=7,y=1boolean?a?=?true;boolean?b?=?false;System.out.println(a?&?b);System.out.println(a?&&?b);System.out.println(a?|?b);System.out.println(a?||?b);System.out.println(a?&?!b);System.out.println(a?^?b);boolean?b?=?false;//&?與?&&?的區別:&:不管左邊是true還是false,右端都會進行運算。//???&&:當左端為false時,右端不再進行運算//以后使用時,建議使用?&&int?i1?=?10;if(b?&?(i1++)?>?0){System.out.println("今天天氣很晴朗");}else{System.out.println("難得沒有霧霾");}System.out.println(i1);int?i2?=?10;if(b?&&?(i2++)?>?0){System.out.println("今天天氣很晴朗");}else{System.out.println("難得沒有霧霾");}System.out.println(i2);*///|?與?||?的區別:|:當左端為true時,右端照樣做運算。//?||:當左端為true時,右端不再進行運算。//我們在使用時,選擇:||boolean?a?=?true;int?i3?=?10;if(a?|?i3++?>?0){System.out.println("今天天氣很晴朗");}else{System.out.println("難得沒有霧霾");}System.out.println(i3);//11int?i4?=?10;if(a?||?i4++?>?0){System.out.println("今天天氣很晴朗");}else{System.out.println("難得沒有霧霾");}System.out.println(i4);//10} }1.4位運算符
位運算符:<< ?>> ??>>> ?| & ~ ^
1.5三元運算符
表達式1和表達式2為同種類型
三元運算符與if-else的聯系與區別:
1)三元運算符可簡化if-else語句
2)三元運算符要求必須返回一個結果。
3)if后的代碼塊可有多個語句
?
練習: 獲取兩個數中的較大數
? ??獲取三個數中的較大數
三元運算符:(條件表達式)? ?表達式1 : 表達式2;
要求:表達式1與表達式2為同種數據類型。
???既然是運算符,就一定會有運算的結果,結果的數據類型與表達式1,2的類型一致。
三元運算符在一定程度上可以與if-else互換。(三元運算符一定可以轉換為if-else,反之不成立。)
class??TestSanYuan {public?static?void?main(String[]?args)?{int?i?=?30;int?j?=?20;String?max?=?(i>j)???"i大":(i?==?j)?"i等于j":"j大";System.out.println("max="+max);if(i>j){System.out.println("i大,i="+i);}else?if(i==j){System.out.println("i=j,i,j="+j);}else{System.out.println("j大,j="+j);}int?m?=?20;int?n?=?10;int?k?=?39;int?max1?=?(m?>?n)???m?:?n;int?result?=?(max1?>?k)???max1?:?k;System.out.println(result);} }2.0程序流程控制
循環結構
程序從上到下逐行的執行,中間沒有任何判斷和跳轉。
分支結構
根據條件,選擇性地執行某段代碼。
有if...else和switch兩種分zhi語句。
循環結構
根據循環條件,重復性的執行某段代碼。
有while、do...while、for三種循環語句。
注:JDK1.5提供了foreach循環。方便的遍歷集合、數組元素。
2.1怎么獲取鍵盤輸入:
//1.導包
import?java.util.Scanner;
class?TestScanner{
public?static?void?main(String[] args){
//2.創建一個Scanner類的對象
Scanner s = new?Scanner(System.in);
System.out.println("請輸入一個字符串:");
//3.調用此對象的相應的方法,完成鍵盤輸入的值的獲取
//next():表示從鍵盤獲取一個字符串
String str = s.next();
System.out.println(str);
}
}
案例:
從鍵盤輸入小明的期末成績。
當成績為100分時,獎勵一輛BMW;
當成績為(80,99]時,獎勵一個臺iphone5s;
當成績為[60,80]時,獎勵一本參考書;
其它時,什么獎勵也沒有。
編寫程序:由鍵盤輸入三個整數分別存入變量num1、num2、num3,對它們進行排序(使用 if-else if-else),并且從小到大輸出。
import?java.util.Scanner; class?TestIf2? {public?static?void?main(String[]?args)?{Scanner?s?=?new?Scanner(System.in);System.out.println("請輸入第一個整數");int?num1?=?s.nextInt();System.out.println("請輸入第二個整數");int?num2?=?s.nextInt();System.out.println("請輸入第三個整數");int?num3?=?s.nextInt();if(num1?>?num2){if(num1?>?num3){if(num2?>?num3){System.out.println(num3+","+num2+","+num1);}else{System.out.println(num2+","+num3+","+num1);}}else{System.out.println(num2+","+num1+","+num3);}}else{if(num3?<?num1){System.out.println(num3+","+num1+","+num2);}else{if(num3?>?num2){System.out.println(num1+","+num2+","+num3);}else{System.out.println(num1+","+num3+","+num2);}}}} }轉載于:https://blog.51cto.com/12426495/1885233
總結
- 上一篇: 客户端验证:JQuery Validat
- 下一篇: Pause/Resume Instanc