《java程序設(shè)計》第2講.ppt
《《java程序設(shè)計》第2講.ppt》由會員分享,可在線閱讀,更多相關(guān)《《java程序設(shè)計》第2講.ppt(73頁珍藏版)》請在裝配圖網(wǎng)上搜索。
2020 4 16 1 Java語言程序設(shè)計 河南科技專修學(xué)院 辛鳳凡 xff130 2020 4 16 2 第2章運算和語句 2020 4 16 3 本章總體綱要 數(shù)據(jù)運算語句Java程序?qū)嵗?2020 4 16 4 數(shù)據(jù)運算 賦值運算 簡單復(fù)合 算術(shù)運算自增自減運算 單目 關(guān)系運算邏輯運算條件運算 三目 其他運算 2020 4 16 5 Java運算符 賦值類運算符算術(shù)運算符自增自減運算符關(guān)系運算符布爾邏輯運算符條件運算符其他運算符 位運算符 移位 2020 4 16 6 1 賦值類運算符 簡單賦值運算符 不是相等 intj 3 doubley 2 0 y j 類型自動轉(zhuǎn)換 從簡單到復(fù)雜的轉(zhuǎn)換賦值運算也有值y j 3 結(jié)合性 自右至左 2020 4 16 7 1 賦值類運算符 復(fù)合賦值類運算符包括 2020 4 16 8 2 算術(shù)運算符 算術(shù)運算符包括 取正 取負(fù) 單目運算 雙目運算 注意事項 當(dāng)操作數(shù)是定點類型數(shù)據(jù)時 應(yīng)當(dāng)注意運算是否會溢出inti 123456 i i i 溢出整數(shù)除法 截去余數(shù)7 5結(jié)果為1考慮除數(shù)是否可能為0或很小的數(shù) 2020 4 16 9 取模 返回余數(shù) 可以對定點或浮點數(shù)進(jìn)行取模運算7 5結(jié)果為2 15 25 0 5 結(jié)果為0 25 2020 4 16 10 練習(xí) 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 自增自減運算 前綴和后綴 對變量本身 效果相同 但表達(dá)式的值不相同 i 5 i i 運算對象只能是變量 不能是常量或表達(dá)式 如 7 i j 都是非法的 2020 4 16 13 4 關(guān)系運算符 關(guān)系運算符包括 和 關(guān)系運算生成一個布爾結(jié)果 例如 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ù)是否在一定的誤差允許范圍之內(nèi) 例如 15 2 0 5 0 2 結(jié)果為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ù)必須是布爾型 結(jié)果也是布爾型 可以有3種基本操作 與 或 非 與C或C 不同的是 不可將一個非布爾值當(dāng)作布爾值在邏輯表達(dá)式中使用 2020 4 16 16 短路規(guī)則 和 短路規(guī)則 一旦能夠明確無誤的確定整個表達(dá)式的值 就不再計算表達(dá)式余下的部分了 因此 整個邏輯表達(dá)式靠后的部分可能不會計算 比較 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 條件運算符 條件運算符是一個三目運算符 一般形式為 邏輯表達(dá)式 表達(dá)式1 表達(dá)式2例如 inti 5 intk i 0 1 1 條件運算符的結(jié)合性為 自右至左 例如 x y x u v u v等價于x y x u v u v 2020 4 16 19 7 其他運算符 位運算移位運算運算的優(yōu)先級 類型強制轉(zhuǎn)換運算 2020 4 16 20 位運算符和移位 位運算符包括 移位運算符有 和 帶符號右移 左端空出的位填原符號位 不帶符號右移 邏輯右移 左端空出的位填0 C或C 中無此運算符 位運算操作是 先將整數(shù)寫成二進(jìn)制形式 補碼 然后按位操作 最后產(chǎn)生一個新的數(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 求今年所占的份額 編譯出錯 不能完成自動類型轉(zhuǎn)換 類型名 表達(dá)式 強制類型轉(zhuǎn)換 intb int 10 2 doublea 10 intc int a 其它運算符包括 類型 更改為 強制類型轉(zhuǎn)換 2020 4 16 23 算符優(yōu)先 當(dāng)一個表達(dá)式中存在多個運算符時 運算符的優(yōu)先級決定了個部分的計算順序 Java對運算符的優(yōu)先級做了特別規(guī)定 程序員經(jīng)常會忘記運算符的優(yōu)先規(guī)則 所以應(yīng)該用 來明確規(guī)定計算順序使表達(dá)式更容易理解 例如 a b c 3 a b c 3 2020 4 16 24 C 中引入了運算符重載 使得c 程序員可以為幾乎所有運算符增加功能 而Java認(rèn)為此項特性過于復(fù)雜 所以Java程序員不能像C 程序員那樣實現(xiàn)自己的重載操作符 但是 和 操作符除了一般算術(shù)運算的用途外 還可用于連接不同的字符串 在C和C 中 sizeof 運算符可以告訴我們?yōu)閿?shù)據(jù)分配的字節(jié)數(shù) C和C 需要這個運算符的最大原因是為了 移植 不同數(shù)據(jù)類型在不同機器上可能有不同的大小 在進(jìn)行一些與存儲空間有關(guān)的運算時 程序員必須獲悉哪些類型具體有多大 而Java則不需要 因此 Java中沒有sizeof 運算符 2020 4 16 25 本章總體綱要 數(shù)據(jù)運算語句Java程序?qū)嵗?2020 4 16 26 語句 基本語句復(fù)合語句控制結(jié)構(gòu)語句 順序 選擇 循環(huán) 2020 4 16 27 基本語句 表達(dá)式語句k k 2 空語句 break語句break 用于循環(huán)或選擇continue語句continue 同上return語句return return表達(dá)式 該語句的執(zhí)行將結(jié)束方法的執(zhí)行 只能出現(xiàn)在方法體中 2020 4 16 28 復(fù)合語句 用花括號引起來的兩條或兩條以上語句 順序執(zhí)行但作為一個整體 在復(fù)合語句中可以定義自己專用的臨時變量 2020 4 16 29 控制結(jié)構(gòu) if語句和if else語句switch語句for語句while語句do while語句break語句continue語句return語句 2020 4 16 30 true和false 選擇或循環(huán)結(jié)構(gòu)中 都根據(jù)布爾表達(dá)式的真或假來決定執(zhí)行路徑 注意 Java不允許將一個數(shù)字作為布爾值使用 這與c或c 不同 例如 當(dāng)要表達(dá) 如果a不等于0 這個條件不能寫作if a 而要寫作if a 0 2020 4 16 31 if語句 if語句的格式是 if 布爾表達(dá)式 語句或if 布爾表達(dá)式 一條或多條語句 例如 if score 60 System out println Passed Herecouldbe astatementblock 2020 4 16 32 if else語句 if else語句的格式是 if 布爾表達(dá)式 語句1或語句塊1else語句2或語句塊2例如 if score 60 System out println Passed elseSystem out println Failed 2020 4 16 33 if else語句 標(biāo)準(zhǔn)嵌套if else控制結(jié)構(gòu)可實現(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語句 當(dāng)使用if else嵌套實現(xiàn)多分支選擇結(jié)構(gòu)時 注意if和else的匹配采用最近原則 即else子句與最近的前一個未匹配的if子句配對 例如 if condition1 if condition2 system out println One elsesystem out println Two 縮進(jìn)可以提高程序的可讀性 但不影響程序的邏輯 2020 4 16 35 switch 表達(dá)式 case常量1 語句組1 break case常量2 語句組2 break default 語句 什么是switch結(jié)構(gòu) 計算表達(dá)式的值 如果等于常量1 如果等于常量2 如果沒有找到匹配的值 2020 4 16 36 switch語句 switch表達(dá)式的數(shù)據(jù)類型可以是基本類型char byte short int 或是這四種基本類型相對應(yīng)的包裝類java lang Character java lang Byte java lang Short java lang Integer或enum枚舉類型 跟在case后的必須是常量表達(dá)式 其值的類型應(yīng)當(dāng)與switch表達(dá)式的數(shù)據(jù)類型相匹配 2020 4 16 37 常見錯誤 intmingCi 1 switch mingCi case1 System out println 出任武林盟主 case2 System out println 出任武當(dāng)掌門 case3 System out println 出任峨嵋掌門 default System out println 被逐出師門 輸出結(jié)果是什么 如果需要每個case執(zhí)行完后跳出 在每個case后不要忘記寫break 2020 4 16 38 常見錯誤 intmingCi 1 switch mingCi case1 System out println 出任武林盟主 break case2 System out println 出任武當(dāng)掌門 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后面小括號中表達(dá)式的值必須是整型或字符型 代碼錯誤 2020 4 16 40 try catch語句 Java提供了一種異常的機制協(xié)助程序報告和處理錯誤異常就是在程序的運行過程中所發(fā)生的不正常的事件 它會中斷正在運行的程序Try標(biāo)識一個可能會發(fā)生異常的語句塊Catch標(biāo)識一個處理異常的語句塊Finally標(biāo)識一個無論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米賽跑 旋轉(zhuǎn)的車輪 循環(huán)結(jié)構(gòu)的特點 鍥而不舍地學(xué)習(xí) 生活中的循環(huán) 2020 4 16 43 while語句 while語句的格式 while 布爾表達(dá)式 語句或語句塊當(dāng)條件 布爾表達(dá)式 為true 則不斷地執(zhí)行語句或語句塊 while 循環(huán)的中止條件是布爾表達(dá)式變?yōu)閒alse如果布爾表達(dá)式一開始就為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)中被重復(fù)執(zhí)行的操作 inti 1 while i 30 System out println 我能行 i 編碼規(guī)范 縮進(jìn) 換行 2020 4 16 45 while循環(huán)常見問題 打印4次 歡迎新同學(xué) publicstaticvoidmain String args inti 0 while i 4 System out println 歡迎新同學(xué) i 永遠(yuǎn)都不會退出的循環(huán)稱為死循環(huán) 循環(huán)一直執(zhí)行 不會退出 哪里出錯了 2020 4 16 46 while循環(huán)常見問題 打印4次 歡迎新同學(xué) publicstaticvoidmain String args inti 1 while i 4 System out println 歡迎新同學(xué) i i 4 只打印了三次 哪里出錯了 注意檢查循環(huán)次數(shù)是否滿足需求 2020 4 16 47 while循環(huán)常見問題 打印4次 歡迎新同學(xué) publicstaticvoidmain String args inti 0 while i 5 System out println 歡迎新同學(xué) 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ī)范 格式對齊 代碼的縮進(jìn) 表達(dá)式1 表達(dá)式2 表達(dá)式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 不能省略 可省略 表達(dá)式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 省略表達(dá)式3 在循環(huán)體內(nèi)應(yīng)設(shè)法改變循環(huán)變量的值以結(jié)束循環(huán) 編譯通過 但是循環(huán)變量的值無變化 造成死循環(huán) 2020 4 16 54 for循環(huán)常見問題 for System out println 這是測試 表達(dá)式全省略 無條件判斷 循環(huán)變量無改變 應(yīng)在循環(huán)體內(nèi)設(shè)法結(jié)束循環(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)結(jié)構(gòu)總結(jié) 到目前為止所學(xué)的循環(huán)結(jié)構(gòu)有哪些 需要多次重復(fù)執(zhí)行一個或多個任務(wù)的問題考慮使用循環(huán)來解決 2020 4 16 59 循環(huán)總結(jié) 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相同 先進(jìn)行判斷 后執(zhí)行循環(huán)體內(nèi)容do while是先執(zhí)行 后判斷 至少執(zhí)行一次 指出各種循環(huán)結(jié)構(gòu)的執(zhí)行順序 2020 4 16 60 嵌套的循環(huán)結(jié)構(gòu) for循環(huán)的嵌套while循環(huán)的嵌套do while循環(huán)的嵌套以上三個任意之間的嵌套 2020 4 16 61 return語句 return語句的格式是 return 或return表達(dá)式 return關(guān)鍵詞有兩方面用途 指定一個方法返回什么值結(jié)束當(dāng)前方法的執(zhí)行 將控制返回到方法調(diào)用處返回值為void的方法可以不寫return語句 但是 如果一個方法聲明它將返回void之外的其他值 那么必須確保每一條代碼路徑都將返回一個指定類型的值 2020 4 16 62 控制流語句小結(jié) 順序結(jié)構(gòu) 語句順序執(zhí)行分支結(jié)構(gòu) 語句在滿足條件下執(zhí)行if if else if elseif else switch循環(huán)結(jié)構(gòu) 語句在滿足條件下循環(huán)執(zhí)行多次while do while for跳轉(zhuǎn)語句break continue 2020 4 16 63 包 包 解決類的同名問題 允許類組成較小的單元 類似文件夾 易于找到和使用相應(yīng)的文件 防止命名沖突 更好的保護(hù)類 數(shù)據(jù)和方法 2020 4 16 64 如何創(chuàng)建包 packages1java sg chap7 publicclassAccpSchool publicStringtoString 包名 使用package聲明包 以分號結(jié)尾 如果有包的聲明 一定作為Java源代碼的第一條語句 2020 4 16 65 包命名規(guī)范 包名由小寫字母組成 不能以圓點開頭或結(jié)尾自己設(shè)定的包名之前最好加上唯一的前綴 通常使用組織倒置的網(wǎng)絡(luò)域名 如 域名自己設(shè)定的包名部分依不同機構(gòu)各自內(nèi)部的規(guī)范不同而不同 packagemypackage packagenet javagroup mypackage packagenet javagroup research powerproject 部門名 項目名 package mypackage 2020 4 16 66 如何導(dǎo)入包 為了使用不在同一包中的類 需要在Java程序中使用import關(guān)鍵字導(dǎo)入這個類 importjava util 導(dǎo)入java util包中所有類importjava lang 導(dǎo)入java lang包中所有類 關(guān)鍵字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程序的基本結(jié)構(gòu) package包名 import包名 類名 更多的import語句 public class類名 intval 變量定義語句Publicstaticvoidmain Stringargs 方法定義 變量定義和控制語句構(gòu)成的方法體 2020 4 16 69 本章總體綱要 數(shù)據(jù)運算語句Java程序?qū)嵗?2020 4 16 70 結(jié)構(gòu)化程序設(shè)計 結(jié)構(gòu)化程序設(shè)計 數(shù)據(jù) 操作 流程控制 結(jié)構(gòu)化程序設(shè)計方法 2020 4 16 71 流程控制 順序結(jié)構(gòu)Java中的最基本結(jié)構(gòu)選擇結(jié)構(gòu)if if else和switch case循環(huán)結(jié)構(gòu)while do while和for 2020 4 16 72 程序?qū)嵗?p33 35 上機練習(xí)開始追求結(jié)果正確 領(lǐng)會要點以后 設(shè)法修改 力求精練 2020 4 16 73 引用聲明 本課件參考了下面的書及其課件 雍俊海 Java程序設(shè)計教程 北京 清華大學(xué)出版社 2007- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該PPT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- java程序設(shè)計 java 程序設(shè)計
鏈接地址:http://m.zhongcaozhi.com.cn/p-10979686.html