《java程序設計》第2講.ppt
《《java程序設計》第2講.ppt》由會員分享,可在線閱讀,更多相關《《java程序設計》第2講.ppt(73頁珍藏版)》請在裝配圖網上搜索。
2020 4 16 1 Java語言程序設計 河南科技專修學院 辛鳳凡 xff130 2020 4 16 2 第2章運算和語句 2020 4 16 3 本章總體綱要 數(shù)據(jù)運算語句Java程序實例 2020 4 16 4 數(shù)據(jù)運算 賦值運算 簡單復合 算術運算自增自減運算 單目 關系運算邏輯運算條件運算 三目 其他運算 2020 4 16 5 Java運算符 賦值類運算符算術運算符自增自減運算符關系運算符布爾邏輯運算符條件運算符其他運算符 位運算符 移位 2020 4 16 6 1 賦值類運算符 簡單賦值運算符 不是相等 intj 3 doubley 2 0 y j 類型自動轉換 從簡單到復雜的轉換賦值運算也有值y j 3 結合性 自右至左 2020 4 16 7 1 賦值類運算符 復合賦值類運算符包括 2020 4 16 8 2 算術運算符 算術運算符包括 取正 取負 單目運算 雙目運算 注意事項 當操作數(shù)是定點類型數(shù)據(jù)時 應當注意運算是否會溢出inti 123456 i i i 溢出整數(shù)除法 截去余數(shù)7 5結果為1考慮除數(shù)是否可能為0或很小的數(shù) 2020 4 16 9 取模 返回余數(shù) 可以對定點或浮點數(shù)進行取模運算7 5結果為2 15 25 0 5 結果為0 25 2020 4 16 10 練習 7 5 7 5 7 5 5 5 1 0 1 220 5 2020 4 16 11 3 自增自減運算 單目 自增 和自減 操作數(shù)必須是變量 有前置和后置兩種運算intn 3 inti n j n i 3 j 4 n 3intk n m n k 4 m 3 n 3 2020 4 16 12 3 自增自減運算 前綴和后綴 對變量本身 效果相同 但表達式的值不相同 i 5 i i 運算對象只能是變量 不能是常量或表達式 如 7 i j 都是非法的 2020 4 16 13 4 關系運算符 關系運算符包括 和 關系運算生成一個布爾結果 例如 1 2 false3 5 1 true51 5 23 0 true540 654 true24 3 8 truebooleantest1 10 10 test1 false 2020 4 16 14 注意事項 計算機在表示浮點數(shù)以及浮點數(shù)運算時存在誤差 建議不要直接比較兩個浮點數(shù)是否相等 而通常改為判斷這兩個浮點數(shù)是否在一定的誤差允許范圍之內 例如 15 2 0 5 0 2 結果為false 0 2 1 0e 5 15 2 0 5 15 2 0 5 0 2 1 0e 5 2020 4 16 15 5 邏輯運算符 邏輯運算的操作數(shù)必須是布爾型 結果也是布爾型 可以有3種基本操作 與 或 非 與C或C 不同的是 不可將一個非布爾值當作布爾值在邏輯表達式中使用 2020 4 16 16 短路規(guī)則 和 短路規(guī)則 一旦能夠明確無誤的確定整個表達式的值 就不再計算表達式余下的部分了 因此 整個邏輯表達式靠后的部分可能不會計算 比較 birthday true age 65 birthday true age 65 2020 4 16 17 短路規(guī)則 和 inta b c a b c 1 booleanw w a 1 b c a b c w 答案 a 2 b 1 c 1 w true 2020 4 16 18 6 條件運算符 條件運算符是一個三目運算符 一般形式為 邏輯表達式 表達式1 表達式2例如 inti 5 intk i 0 1 1 條件運算符的結合性為 自右至左 例如 x y x u v u v等價于x y x u v u v 2020 4 16 19 7 其他運算符 位運算移位運算運算的優(yōu)先級 類型強制轉換運算 2020 4 16 20 位運算符和移位 位運算符包括 移位運算符有 和 帶符號右移 左端空出的位填原符號位 不帶符號右移 邏輯右移 左端空出的位填0 C或C 中無此運算符 位運算操作是 先將整數(shù)寫成二進制形式 補碼 然后按位操作 最后產生一個新的數(shù)注意 只用于定點類型數(shù)據(jù) 整型 2020 4 16 21 注意事項 Java將布爾類型作為一種單比特值 bit位 對待 可以對它執(zhí)行按位 與 按位 或 和按位 異或 運算 對于布爾值 按位操作具有與邏輯操作相同的效果 只是 和 采用 短路規(guī)則 而 和 則不采用 2020 4 16 22 intbefore 20 apple筆記本市場份額doublerise 9 8 增長的份額intnow before rise 現(xiàn)在的份額 intnow before int rise 去年Apple筆記本所占的市場份額是20 今年增長的市場份額是9 8 求今年所占的份額 編譯出錯 不能完成自動類型轉換 類型名 表達式 強制類型轉換 intb int 10 2 doublea 10 intc int a 其它運算符包括 類型 更改為 強制類型轉換 2020 4 16 23 算符優(yōu)先 當一個表達式中存在多個運算符時 運算符的優(yōu)先級決定了個部分的計算順序 Java對運算符的優(yōu)先級做了特別規(guī)定 程序員經常會忘記運算符的優(yōu)先規(guī)則 所以應該用 來明確規(guī)定計算順序使表達式更容易理解 例如 a b c 3 a b c 3 2020 4 16 24 C 中引入了運算符重載 使得c 程序員可以為幾乎所有運算符增加功能 而Java認為此項特性過于復雜 所以Java程序員不能像C 程序員那樣實現(xiàn)自己的重載操作符 但是 和 操作符除了一般算術運算的用途外 還可用于連接不同的字符串 在C和C 中 sizeof 運算符可以告訴我們?yōu)閿?shù)據(jù)分配的字節(jié)數(shù) C和C 需要這個運算符的最大原因是為了 移植 不同數(shù)據(jù)類型在不同機器上可能有不同的大小 在進行一些與存儲空間有關的運算時 程序員必須獲悉哪些類型具體有多大 而Java則不需要 因此 Java中沒有sizeof 運算符 2020 4 16 25 本章總體綱要 數(shù)據(jù)運算語句Java程序實例 2020 4 16 26 語句 基本語句復合語句控制結構語句 順序 選擇 循環(huán) 2020 4 16 27 基本語句 表達式語句k k 2 空語句 break語句break 用于循環(huán)或選擇continue語句continue 同上return語句return return表達式 該語句的執(zhí)行將結束方法的執(zhí)行 只能出現(xiàn)在方法體中 2020 4 16 28 復合語句 用花括號引起來的兩條或兩條以上語句 順序執(zhí)行但作為一個整體 在復合語句中可以定義自己專用的臨時變量 2020 4 16 29 控制結構 if語句和if else語句switch語句for語句while語句do while語句break語句continue語句return語句 2020 4 16 30 true和false 選擇或循環(huán)結構中 都根據(jù)布爾表達式的真或假來決定執(zhí)行路徑 注意 Java不允許將一個數(shù)字作為布爾值使用 這與c或c 不同 例如 當要表達 如果a不等于0 這個條件不能寫作if a 而要寫作if a 0 2020 4 16 31 if語句 if語句的格式是 if 布爾表達式 語句或if 布爾表達式 一條或多條語句 例如 if score 60 System out println Passed Herecouldbe astatementblock 2020 4 16 32 if else語句 if else語句的格式是 if 布爾表達式 語句1或語句塊1else語句2或語句塊2例如 if score 60 System out println Passed elseSystem out println Failed 2020 4 16 33 if else語句 標準嵌套if else控制結構可實現(xiàn)多路選擇 用在想從多個候選項中選擇且只選出一項時 例如 if score 90 System out println A elseif score 80 System out println B elseif score 60 System out println C elseSystem out println F 2020 4 16 34 if else語句 當使用if else嵌套實現(xiàn)多分支選擇結構時 注意if和else的匹配采用最近原則 即else子句與最近的前一個未匹配的if子句配對 例如 if condition1 if condition2 system out println One elsesystem out println Two 縮進可以提高程序的可讀性 但不影響程序的邏輯 2020 4 16 35 switch 表達式 case常量1 語句組1 break case常量2 語句組2 break default 語句 什么是switch結構 計算表達式的值 如果等于常量1 如果等于常量2 如果沒有找到匹配的值 2020 4 16 36 switch語句 switch表達式的數(shù)據(jù)類型可以是基本類型char byte short int 或是這四種基本類型相對應的包裝類java lang Character java lang Byte java lang Short java lang Integer或enum枚舉類型 跟在case后的必須是常量表達式 其值的類型應當與switch表達式的數(shù)據(jù)類型相匹配 2020 4 16 37 常見錯誤 intmingCi 1 switch mingCi case1 System out println 出任武林盟主 case2 System out println 出任武當掌門 case3 System out println 出任峨嵋掌門 default System out println 被逐出師門 輸出結果是什么 如果需要每個case執(zhí)行完后跳出 在每個case后不要忘記寫break 2020 4 16 38 常見錯誤 intmingCi 1 switch mingCi case1 System out println 出任武林盟主 break case2 System out println 出任武當掌門 break case2 System out println 出任峨嵋掌門 break default System out println 被逐出師門 case后面的常量必須各不相同 代碼錯誤 2020 4 16 39 常見錯誤 Stringday 星期一 switch day case 星期一 System out println 星期一 青菜 break case 星期二 System out println 星期二 魚 break default switch后面小括號中表達式的值必須是整型或字符型 代碼錯誤 2020 4 16 40 try catch語句 Java提供了一種異常的機制協(xié)助程序報告和處理錯誤異常就是在程序的運行過程中所發(fā)生的不正常的事件 它會中斷正在運行的程序Try標識一個可能會發(fā)生異常的語句塊Catch標識一個處理異常的語句塊Finally標識一個無論try塊中語句異常是否發(fā)生都會執(zhí)行的語句塊 異常 程序運行 程序中斷運行 2020 4 16 41 try catch語句格式 try 語句塊 執(zhí)行該語句塊 可能會發(fā)生異常 catch 異常類型e 異常發(fā)生時要執(zhí)行的語句塊 finally 無論異常發(fā)生與否 都要執(zhí)行的語句塊 2020 4 16 42 什么是循環(huán) 打印50份試卷 10000米賽跑 旋轉的車輪 循環(huán)結構的特點 鍥而不舍地學習 生活中的循環(huán) 2020 4 16 43 while語句 while語句的格式 while 布爾表達式 語句或語句塊當條件 布爾表達式 為true 則不斷地執(zhí)行語句或語句塊 while 循環(huán)的中止條件是布爾表達式變?yōu)閒alse如果布爾表達式一開始就為false 則不執(zhí)行循環(huán)體 intcounter 1 sum 0 while counter 100 sum counter counter 2020 4 16 44 While語句 特點 先判斷 再執(zhí)行步驟 使用while循環(huán)的步驟1 分析循環(huán)條件和循環(huán)操作2 套用while語法寫出代碼3 檢查循環(huán)是否能夠退出 while 循環(huán)條件 循環(huán)操作 符合條件 循環(huán)繼續(xù)執(zhí)行 否則 循環(huán)退出 循環(huán)中被重復執(zhí)行的操作 inti 1 while i 30 System out println 我能行 i 編碼規(guī)范 縮進 換行 2020 4 16 45 while循環(huán)常見問題 打印4次 歡迎新同學 publicstaticvoidmain String args inti 0 while i 4 System out println 歡迎新同學 i 永遠都不會退出的循環(huán)稱為死循環(huán) 循環(huán)一直執(zhí)行 不會退出 哪里出錯了 2020 4 16 46 while循環(huán)常見問題 打印4次 歡迎新同學 publicstaticvoidmain String args inti 1 while i 4 System out println 歡迎新同學 i i 4 只打印了三次 哪里出錯了 注意檢查循環(huán)次數(shù)是否滿足需求 2020 4 16 47 while循環(huán)常見問題 打印4次 歡迎新同學 publicstaticvoidmain String args inti 0 while i 5 System out println 歡迎新同學 i 注意 如果一開始條件就不滿足 while循環(huán)一次都不執(zhí)行 i 5 一次都沒有打印 哪里出錯了 2020 4 16 48 什么是do while循環(huán) do 循環(huán)操作 while 循環(huán)條件 先執(zhí)行一遍循環(huán)操作 符合條件 循環(huán)繼續(xù)執(zhí)行 否則 循環(huán)退出 特點 先執(zhí)行 再判斷 2020 4 16 49 while循環(huán)和do while循環(huán)的區(qū)別語法不同初始情況不滿足循環(huán)條件時while循環(huán)一次都不會執(zhí)行do while循環(huán)不管任何情況都至少執(zhí)行一次 do 循環(huán)操作 while 循環(huán)條件 while 循環(huán)條件 循環(huán)操作 先判斷 再執(zhí)行 先執(zhí)行 再判斷 比較while和do while 2020 4 16 50 for循環(huán)的語法和執(zhí)行順序 什么是for循環(huán) for 條件為true 循環(huán)體被執(zhí)行 for inti 0 i 100 i System out println 我最棒 代碼規(guī)范 格式對齊 代碼的縮進 表達式1 表達式2 表達式3 循環(huán)操作 參數(shù)初始化 條件判斷 更新循環(huán)變量 1 2 4 3 2020 4 16 51 for循環(huán)常見問題 for i 10 i System out println 這是 i inti 0 編譯錯誤 變量i沒有初始化 for 不能省略 可省略 表達式1省略 循環(huán)變量的初始值在for語句之前由賦值語句取得 2020 4 16 52 for循環(huán)常見問題 for inti 0 i System out println 這是 i 編譯正確 但是缺少循環(huán)條件 造成死循環(huán) 2020 4 16 53 for循環(huán)常見問題 for inti 0 i 10 System out println 這是 i i 省略表達式3 在循環(huán)體內應設法改變循環(huán)變量的值以結束循環(huán) 編譯通過 但是循環(huán)變量的值無變化 造成死循環(huán) 2020 4 16 54 for循環(huán)常見問題 for System out println 這是測試 表達式全省略 無條件判斷 循環(huán)變量無改變 應在循環(huán)體內設法結束循環(huán) 否則會造成死循環(huán) 死循環(huán) 2020 4 16 55 為什么需要break語句 inti 2 switch i case1 System out println 星期一 break case2 System out println 星期二 break 其他語句 遇到break 立即跳出switch語句 回顧break用于switch語句 描述4000米長跑比賽 for inti 0 i 10 i 跑400米 if 不能堅持 break 退出 第8圈 快累死了 我要退出 2020 4 16 56 什么是break語句 break 改變程序控制流用于do while while for中時 可跳出循環(huán)而執(zhí)行循環(huán)后面的語句 while break 跳出整個循環(huán) break通常在循環(huán)中與條件語句一起使用 2020 4 16 57 什么是continue語句 continue 只能用在循環(huán)里continue作用 跳過循環(huán)體中剩余的語句而執(zhí)行下一次循環(huán) while continue 繼續(xù)下一次循環(huán) 通常與條件語句一起使用 加速循環(huán) for inti 0 i 10 i 跑400米 if 口渴 continue 不喝水 繼續(xù)跑 接過水壺 喝水 示例 2020 4 16 58 循環(huán)結構總結 到目前為止所學的循環(huán)結構有哪些 需要多次重復執(zhí)行一個或多個任務的問題考慮使用循環(huán)來解決 2020 4 16 59 循環(huán)總結 inti 0 intsum 0 while i 10 sum sum i i inti 0 intsum 0 do sum sum i i while i 10 intsum 0 for inti 0 i 10 i sum sum i 1 2 3 4 1 2 3 4 1 2 3 4 while和for相同 先進行判斷 后執(zhí)行循環(huán)體內容do while是先執(zhí)行 后判斷 至少執(zhí)行一次 指出各種循環(huán)結構的執(zhí)行順序 2020 4 16 60 嵌套的循環(huán)結構 for循環(huán)的嵌套while循環(huán)的嵌套do while循環(huán)的嵌套以上三個任意之間的嵌套 2020 4 16 61 return語句 return語句的格式是 return 或return表達式 return關鍵詞有兩方面用途 指定一個方法返回什么值結束當前方法的執(zhí)行 將控制返回到方法調用處返回值為void的方法可以不寫return語句 但是 如果一個方法聲明它將返回void之外的其他值 那么必須確保每一條代碼路徑都將返回一個指定類型的值 2020 4 16 62 控制流語句小結 順序結構 語句順序執(zhí)行分支結構 語句在滿足條件下執(zhí)行if if else if elseif else switch循環(huán)結構 語句在滿足條件下循環(huán)執(zhí)行多次while do while for跳轉語句break continue 2020 4 16 63 包 包 解決類的同名問題 允許類組成較小的單元 類似文件夾 易于找到和使用相應的文件 防止命名沖突 更好的保護類 數(shù)據(jù)和方法 2020 4 16 64 如何創(chuàng)建包 packages1java sg chap7 publicclassAccpSchool publicStringtoString 包名 使用package聲明包 以分號結尾 如果有包的聲明 一定作為Java源代碼的第一條語句 2020 4 16 65 包命名規(guī)范 包名由小寫字母組成 不能以圓點開頭或結尾自己設定的包名之前最好加上唯一的前綴 通常使用組織倒置的網絡域名 如 域名自己設定的包名部分依不同機構各自內部的規(guī)范不同而不同 packagemypackage packagenet javagroup mypackage packagenet javagroup research powerproject 部門名 項目名 package mypackage 2020 4 16 66 如何導入包 為了使用不在同一包中的類 需要在Java程序中使用import關鍵字導入這個類 importjava util 導入java util包中所有類importjava lang 導入java lang包中所有類 關鍵字import并不陌生 import包名 類名 1 系統(tǒng)包 eg java lang 2 自定義包 net javagroup 指包中的所有類HelloSchool 指包中的HelloSchool類 2020 4 16 67 import語句 一個java源程序中可以有多個import語句 它們必須出現(xiàn)在package語句之后 類的定義之前 2020 4 16 68 Java程序的基本結構 package包名 import包名 類名 更多的import語句 public class類名 intval 變量定義語句Publicstaticvoidmain Stringargs 方法定義 變量定義和控制語句構成的方法體 2020 4 16 69 本章總體綱要 數(shù)據(jù)運算語句Java程序實例 2020 4 16 70 結構化程序設計 結構化程序設計 數(shù)據(jù) 操作 流程控制 結構化程序設計方法 2020 4 16 71 流程控制 順序結構Java中的最基本結構選擇結構if if else和switch case循環(huán)結構while do while和for 2020 4 16 72 程序實例 p33 35 上機練習開始追求結果正確 領會要點以后 設法修改 力求精練 2020 4 16 73 引用聲明 本課件參考了下面的書及其課件 雍俊海 Java程序設計教程 北京 清華大學出版社 2007- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- java程序設計 java 程序設計
裝配圖網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
鏈接地址:http://ioszen.com/p-10979686.html