java基礎教程_(5).ppt_第1頁
java基礎教程_(5).ppt_第2頁
java基礎教程_(5).ppt_第3頁
java基礎教程_(5).ppt_第4頁
java基礎教程_(5).ppt_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、面向對象程序設計,、,第五章 運算符以及 條件判斷結構,學習目標: 掌握常用的各種運算符 if條件判斷語句 switch結構,1. 算術運算符,算術運算符包括:+, -, *, /, +, -, % 沒有指數(shù)運算 Math.pow(2.0, 3.0); / 2.03.0 整數(shù)除法 :截去余數(shù) 7 / 5 結果為 1 取模%:返回余數(shù) 7 % 5 結果為 2,算術運算符:,問題?,-7 / 5 = -7 % 5 = 7 % -5 = 5.5 % 1.0 = 7 / -5 = 3/6*12 = 15.25%0.5 = 15.75%0.5 =,-1 -2 2 0.5 -1 0 0.25 0.25,取

2、模運算的結果符號與第一個操作數(shù)相同,升級和類型轉換,賦值和表達式可能引起計算的數(shù)據(jù)類型與保存結果的存儲位置之間的不匹配。,左邊的數(shù)據(jù)類型右邊的數(shù)據(jù)類型 : byte num1=53; byte num2=47; long num3; num3=num1*num2; 左邊的數(shù)據(jù)類型右邊的數(shù)據(jù)類型: int num1=53; int num2=47; byte num3; num3=num1+num2; 左邊的數(shù)據(jù)類型右邊的數(shù)據(jù)類型: int num1=53; int num2=47; byte num3; num3=num1*num2;,注意: Java是強類型語言,因此,在進行賦值操作時要對類

3、型進行檢查;,自動升級規(guī)則,1. (byte或 short) op int int 2. (byte或 short或 int) op long long 3. (byte或 short或 int或 long) op float float 4. (byte或 short或 int或 long或 float) op double double 5. char op int int 其中,箭頭左邊表示參與運算的數(shù)據(jù)類型 op為運算符(如加、減、乘等) 右邊表示運算結果的數(shù)據(jù)類型。 如:3+4.5,因為4.5是float型,所以3先被轉換為float型,然后再于4.5相加,其結果也為float型。,

4、例: 自動升級實例,public class Promotion public static void main( String args ) byte b = 10; char c = a; int i = 90; float f = 3.5f; double d = 1.234; float f1; f1 = f * b; int i1; i1 = c+i; double d1; d1 = f1 / i1 d; 查看結果:Test.java,查看結果:Promotion.java,public class Age public static void main(String args )

5、int ageYears; int ageDays; long ageSeconds; ageYears=Integer.parseInt(args0); ageDays=ageYears*365; ageSeconds=(ageYears*365*24L*60*60); System.out.print(“You are”+ageDays+”days old.”); System.out.print(“You are”+ageSeconds+”seconds old.”); 查看結果:Age.java,2. 關系運算符,六個關系運算符: 、=、= 和 != 用于比較數(shù)值類型數(shù)據(jù)的大小,結果是

6、布爾值 例如: 1 2; / false 3.5 != 1; / true 51.5 = 23.0; / true 540 = 654; / true 24 = 3*8; / true boolean test1=(10 10); / test1= false;,注意事項,、=只能用來比較兩個數(shù)值類型數(shù)據(jù)(含字符類型)的大小 不能用于Strings、booleans、arrays或其他類型,3.布爾邏輯運算符,操作數(shù)要求是布爾類型數(shù)據(jù),結果為布爾值 六個布爾邏輯運算符: int k= ( (i=0) ? 1 : -1);,int x=5,y=8,z=2 int k=x3?y:z; 請問k=?,

7、k=2,int y=x0?x:-x; 請問y=?,y=|x|,7. 其他運算符,其他運算符包括: (類型)、.、 、( )、instanceof和new 例如: int a=51; char c=(char)a;,運算符優(yōu)先級別,優(yōu)先級規(guī)則: ()乘除(從左到右)加減(從左到右) 復雜的表達式: C=25-5*4/2-10+4; 從左到右的規(guī)則求值,結果是:34 按照優(yōu)先級規(guī)則求值,結果是:9 可以用( )來改變優(yōu)先順序或使表達式更容易理解 例如: a + b + c / 3 (a + b + c ) / 3,JAVA的流程控制語句,結構化程序設計的三種基本控制語句 順序結構 選擇結構 三種類

8、型: if、if/else和switch 循環(huán)結構 三種類型: for、while和do/while,按語句書寫的先后順序執(zhí)行,在若干路徑中有條件地擇一執(zhí)行,當某條件成立時,反復執(zhí)行一段代碼,if語句,if語句的格式是: if (布爾表達式) 語句 或 if (布爾表達式) 一條或多條語句 例如 if ( grade = 60 ) System.out.println( Passed );,if-else語句,if-else語句的格式是: if (布爾表達式) 語句1或語句塊1 else 語句2或語句塊2 例如: if (grade=60) System.out.println(Passed!

9、); else System.out.println(Failed!);,例 1 System.out.println(studentGrade = 60 ? Passed“ : Failed); 例2 max = ( a b ? a : b ); 可以寫成: if (a b) max = a; else max = b;,例:比較兩個數(shù)的大小,并按照從大到小的順序輸出到屏幕上。,public class CompareTwo public static void main(String args) double d1=23.4; double d2= 56.9; if(d1=d2) Syst

10、em.out.println(d1+”=“+d2); else System.out.println(d2+”=“+d1); ,多重If 結構,查看結果:Coffee.java,If 條件A If 條件B 語句塊1 else 語句塊2,注意:else總是與最近的if匹配,If 條件A If 條件B 語句塊1 else 語句塊2,測試String之間的等同性,使用=比較String在內存中的引用是否相等 要測試兩個字符串之間是否具有等同性用equals,switch 語句形式如下: switch (表達式) case 判斷值1: 語句塊1; break; case判斷值2: 語句塊2; brea

11、k; case判斷值n: 語句塊n; break; default: 缺省處理語句; break; ,1. 要注意表達式必須是符合char,byte, short,int類型的表達式,而不能使用boolean類型,浮點類型或long類型,也不能為一個字符串; 2. 將表達式的值依次與每個case子句中的判斷值相比較。如果匹配成功,則執(zhí)行該case子句中常量值后的語句,直到遇到break語句為止; 3.case子句中判斷值的類型必須與表達式的類型相容,且每個case子句中判斷值的值必須是不同的; 4. default子句是可選的,當表達式的值與任一case中的判斷值都不匹配時,就執(zhí)行defaul

12、t后的語句。如果表達式的值與任一case中的判斷值都不匹配且沒有default子句,則程序不執(zhí)行任何操作,直接跳出switch 語句,進入后續(xù)程序段的執(zhí)行。,多分支選擇結構switch語句,switch語句的流程如圖所示:,表達式,break,語句1,break,語句2,break,語句n,break,缺省處理語句,后續(xù)語句,判斷值1,判斷值2,判斷值n,default,.,switch語句的注意點,5.break語句用來在執(zhí)行完一個case 分支后,使程序跳出switch 語句,執(zhí)行switch 語句的后續(xù)語句。因此一般情況下,在每個case 分支后,要用break來終止后面的case 分支

13、語句的執(zhí)行; 6. 在一些特殊的情況下,例如多個不同的case值要執(zhí)行一組相同的操作,可以寫成如下形式: case判斷值n: case判斷值n+1:語句 break; 7.case 分支中包括多個執(zhí)行語句時,可以不用花括號“”括起; 8.通過if-else語句可以實現(xiàn)switch 語句所有的功能。但通常使用switch語句更簡練,且可讀性強,程序的執(zhí)行效率也高; 9. if-else 語句可以基于一個范圍內的值或一個條件來進行不同的操作,但switch 語句中的每個case 子句都必須對應一個單值。,查看結果:SwitchTest.java,查看結果:SwitchDaysInMonth.java,例:用switch語句實現(xiàn)學生成績的百分制到等級制的轉換。,class SwitchDemo public static void main(String args) int testscore=88; char grade; switch (testscore/10) / 兩個整型數(shù)相除的結果還是整型 case 10: /此處沒有使用break case 9: grade=A; /值為10和9時的操作是相同的 break; case 8: grade=B; break; case 7: grade=C; break; case 6: grade=D; break;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論