Java語言程序控制語句.ppt
《Java語言程序控制語句.ppt》由會員分享,可在線閱讀,更多相關《Java語言程序控制語句.ppt(69頁珍藏版)》請在裝配圖網上搜索。
第3章Java語言程序控制語句 簡單語句和復合語句標準輸入輸出語句3 1選擇語句3 2循環(huán)語句3 3跳轉語句數組3 4斷言3 5Java程序示例 簡單語句和復合語句 語句是程序的基本組成單位 1 簡單語句變量說明語句 賦值語句 方法調用語句 空語句等被稱為簡單語句 在Java語言中 一個簡單語句總是以分號結尾的 例 inta 1 b 變量說明語句b 2 賦值語句 空語句System out print b 方法調用語句 2 復合語句復合語句 由大括號 括起來的語句 復合語句的 內可放0 n個語句 每條語句都應該符合Java語句的語法 例 if a 0 z a a b b z Java的輸入和輸出使用方法調用語句 計算機支持多種輸入和輸出設備 例如 鼠標 鍵盤 掃描儀等是輸入設備 顯示器 打印機等是輸出設備 標準I O操作是指通過標準輸入 輸出設備進行的輸入和輸出操作 一般用鍵盤作為標準的輸入設備 顯示器則是標準的輸出設備 在Java中 通過System in和System out對象分別與鍵盤和顯示器發(fā)生聯系而完成程序信息的輸入和輸出 標準輸入輸出語句 I O System out對象包含著多個向顯示器輸出數據的方法 System out對象中包含的最常用的方法是 print 輸出一項數據但不換行println 輸出一項數據后換行例如 System out print Example System out print InputName 執(zhí)行后將輸出 Example InputName 代碼 System out println Example System out println InputName 執(zhí)行上述代碼將輸出如下結果 Example InputName 1 標準輸出System out對象 如果要用一個語句輸出多個數據項 則數據項之間要用 連接 如 Stringstr1 abc intn 11 m 22 System out print str1 ABC 輸出 abcABCSystem out print 1 ABC 輸出 1ABC要將數值型變量的值分別輸出 則必須在中間加入空格字符串 或空串 如 System out print n m 輸出 33System out print n m 輸出 1122System out print n m 輸出 1122 System in對象用于在程序運行時從鍵盤接收輸入 在Java中輸入數據時 為了處理輸入數據的過程中可能出現的錯誤 需要使用異常處理 以使程序具有 堅固性 異常處理的詳細介紹在第5章 有兩種異常處理格式實現輸入 使用try catch語句與read方法 使用throwsIOException與read方法下面是從鍵盤讀一個字符 一個字符串或一個整數的程序示例 當程序中需要實現鍵盤輸入功能時可以參考這些例子 2 標準輸入System in對象 importjava io 引入java io中的類 輸入輸出類 因程序中要 用到輸入輸出類的read 方法 表示引入該包中下面所有用到的類publicclassReadChar publicstaticvoidmain Stringargs throwsIOException 主方法拋出異常 charch char System in read 調用read方法 讀一個 字節(jié)數據 一個字符的ASCII碼值 存于ch中System out print ch 例 從鍵盤讀一個字符 使用throwsIOException與read方法 例 從鍵盤讀一數字串并轉化為整數 importjava io classReadStringOrInt publicstaticvoidmain Stringargs throwsIOException bytebuf newbyte 20 20個字節(jié)的數組用于存字符串Stringstr intanInt System in read buf 從鍵盤讀一個數字串保存于buf中str newString buf buf轉換成String對象str ASCII字符串轉換成Unicode碼串 anInt Integer parseInt str trim 數字串轉換成整數System out print anInt 要將數字串轉換成實數 則 floatf Float parseFloat str trim 轉成單精度數doubled Double parseDouble str trim 轉成雙精度數 一般而言 Java程序中的語句是順序執(zhí)行的 也就是說 按照程序中語句出現的次序從第一條開始依次執(zhí)行到最后一條 如果需要根據某個條件來決定下面該進行什么操作 或是某些事情應根據需要不斷重復地去做 這時就需要用到流程控制語句來控制程序中語句的執(zhí)行順序 3 1選擇語句 3 1 1if語句3 1 2switch語句 簡單if語句的執(zhí)行流程如下圖所示 if else語句根據判定條件的真假來執(zhí)行兩種操作中的一種 1 簡單形式 語法形式 if 布爾表達式 語句注意 if語句中的條件必須是布爾表達式 這點與C 是不同的 C 中可以是一般的算術表達式 語句可以是復合語句 例 if min b min b 3 1 1if語句 條件 布爾表達式 語句 if的后繼語句 false true 簡單if語句的執(zhí)行流程圖 語法形式 if 布爾表達式 語句1else語句2注意 條件必須是布爾表達式 語句1 語句2可以是復合語句 例 if a b min a elsemin b 帶else部分的if語句的執(zhí)行流程如下圖所示 條件 2 完全形式 布爾表達式 if的后繼 false true 有else部分的if語句的執(zhí)行流程 語句1 語句2 if語句中內嵌的語句又是if語句的情況稱為if語句的嵌套 如 if 布爾表達式1 語句1elseif 布爾表達式2 語句2 elseif 布爾表達式m 語句melse語句n 3 if語句的嵌套 程序從上往下依次判斷布爾表達式的條件 一旦某個條件滿足 即布爾表達式的值為true 就執(zhí)行相關的語句 然后就不再判斷其余的條件 直接轉到if語句的后續(xù)語句去執(zhí)行 Java規(guī)定 else總是與離它前面最近的if配對 如果需要 可以通過使用花括號 來改變配對關系 如 1 if x 1 2 if x 1 if y 1 if y 1 aa 1 aa 1 elseaa 2 elseaa 2 1 此處的else與if y 1 相配 2 此處的else與if x 1 相配 例 求一元二次方程 ax2 bx c 0 的根 publicclassroots publicstaticvoidmain Stringargs inta b c check floatx1 x2 a 1 b 2 c 1 check b b 4 a c if check 0 x1 b 2 a x2 x1 System out println x1 x1 System out println x2 x2 elseif check 0 x1 b float Math sqrt check 2 a x2 b float Math sqrt check 2 a System out println x1 x1 System out println x2 x2 else 請自己填寫 練習 編寫一程序 運行后從鍵盤輸入二個整數 輸出其中的最小數 課堂練習 求最小數 importjava io publicclassMin publicstaticvoidmain Stringargs throwsIOException bytebuf newbyte 20 Stringstr inta b min System out println 請輸入二個整數 System in read buf 從鍵盤讀一數字串存于buf中str newString buf buf轉換成字符串a Integer parseInt str trim 數字串轉換成整數System in read buf str newString buf b Integer parseInt str trim min a if min b min b System out println 最小數是 min 3 1 2switch語句 switch語句根據測試表達式的結果來執(zhí)行多個可能操作中的一個 它的語法形式如下 switch語句的流程如下所示 switch 測試表達式 case常量1 語句塊1 break case常量2 語句塊2 break case常量n 語句塊n break default 語句塊n 1 測試表達式 語句塊1 break 語句塊2 break break 語句塊n 語句塊n 1 后繼語句 常量2 default switch語句的流程圖 常量1 常量n switch語句中的每個 case常量 稱為一個case子句 代表一個case分支的入口 switch語句的注意點如下 1 測試表達式必須是byte char short int類型的表達式 而不能使用浮點類型或long類型 也不能為一個字符串 2 switch語句將測試表達式的值依次與每個case子句中的常量值相比較 如果匹配成功 則執(zhí)行該case子句中常量值后的語句 直到遇到break語句為止 3 case子句中常量的類型必須與測試表達式的類型相容 而且每個case子句中常量的值必須是不同的 常量也可以是常量表達式 不含變量 方法的表達式 4 default子句是可選的 當測試表達式的值與任一case子句中的值都不匹配時 就執(zhí)行default后的語句 如果表達式的值與任一case子句中的值都不匹配且沒有default子句 則程序不執(zhí)行任何操作 而是直接跳出switch語句 進入后續(xù)程序段的執(zhí)行 5 break語句用來在執(zhí)行完一個case分支后 使程序跳出switch語句 執(zhí)行switch語句的后續(xù)語句 因為case子句只是起到一個標號的作用 用來查找匹配的入口 然后從此處開始執(zhí)行 對后面的case子句的值不再進行比較 而是直接執(zhí)行其后的語句 因此一般情況下 每個case分支后 要用break來終止后面的case分支語句的執(zhí)行 6 case分支中包括多個執(zhí)行語句時 可以不用花括號括起 7 通過if else語句可以實現switch語句所有的功能 但通常使用switch語句更簡練 且可讀性強 程序的執(zhí)行效率也高 8 if else語句可以基于一個范圍內的值或一個條件來進行不同的操作 但switch語句中的每個case子句都必須對應一個單值 classSwitchDemo publicstaticvoidmain Stringargs intmonth 7 Stringseason switch month case12 case1 case2 season 冬季 break case3 case4 case5 season 春季 break case6 case7 case8 season 夏季 break case9 case10 case11 season 秋季 break default season 錯 System out println month 月是 season ss 例 用switch語句判斷一個月份屬于一年中哪個季節(jié) 春 夏 秋 冬 方法一 循環(huán)語句的作用是反復執(zhí)行同一段代碼直到滿足結束條件 許多問題中需要用到循環(huán)控制 例如累加 累乘等 Java循環(huán)語句有while do while和for三種 3 2循環(huán)語句 3 2 1while語句3 2 2do while語句3 2 3for語句循環(huán)嵌套 while語句形式如下 while 布爾表達式 語句while語句執(zhí)行的過程為 執(zhí)行while語句時 首先判斷布爾表達式的值 當布爾表達式的值為true 則執(zhí)行循環(huán)體 然后再判斷條件 直到布爾表達式的值為false 停止執(zhí)行語句 使用while語句應注意以下兩點 1 該語句是先判斷后執(zhí)行 若一開始條件就不成立 就不執(zhí)行循環(huán)體 2 在循環(huán)體內一定要有改變條件的語句 否則是死循環(huán) while語句的流程圖如下所示 3 2 1while語句 布爾表達式 循環(huán)體 false true while語句流程圖 classsum publicstaticvoidmain Stringargs intn 100 循環(huán)總數n 100inti 1 循環(huán)次數 初值為 floats 0 和s為實型while i n 循環(huán)條件 循環(huán)總數100 s s 1 0f i s增加1 i 1 0f表示是float型i 循環(huán)次數加 System out println s s 例 用while循環(huán)語句計算s 1 1 2 1 3 1 100 Java還提供了另一個與while語句類似的語句 do while語句 do while語句的語法形式如下 do語句while 布爾表達式 do while語句執(zhí)行的過程為 先執(zhí)行一次循環(huán)體中的語句 然后測試布爾表達式的值 如果布表達式的值為真 那就繼續(xù)執(zhí)行循環(huán)體 do while語句將不斷地測試布爾表達式的值并執(zhí)行循環(huán)體中的內容 直到布爾表達式的值為假為止 do while語句的流程圖如下所示 3 2 2do while語句 布爾表達式 循環(huán)體 true false Do while語句流程圖 do while語句和while語句的不同之處是 do while語句總是先進入循環(huán) 執(zhí)行一次循環(huán)體后才檢測循環(huán)條件 以決定是否繼續(xù)循環(huán) 而while語句是先測試條件 再決定是否進入循環(huán) 所以 用do while語句時 循環(huán)體至少執(zhí)行一次 例 用do while循環(huán)語句計算s 1 1 2 1 3 1 4 1 100 classsum publicstaticvoidmain Stringargs inti 1 循環(huán)次數 初值為 floats 0 和s為實型do 循環(huán)條件 s s 1 0f i s增加1 i 1 0f表示是float型i 循環(huán)次數加 while i 100 要循環(huán)100次System out println s s for語句是循環(huán)的另一種表示形式 for語句的語法形式為 for 表達式1 表達式2 表達式3 語句for是for語句的關鍵字 語句為for語句的循環(huán)體 若有多個語句 需構成復合語句 for語句中循環(huán)控制變量必須是有序類型 常用的有整型 字符型 布爾型 循環(huán)控制變量初值和終值通常是與控制變量類型相一致的一個常量 也可以是表達式 循環(huán)次數由初值和終值決定 執(zhí)行過程 1 按表達式1將初值賦給循環(huán)控制變量 2 按表達式2判斷循環(huán)是否成立 即判斷控制變量的值 3 2 3for語句 是否越過終值 未越過終值為條件成立 越過終值為條件不成立 若條件不成立 轉步驟 6 3 若條件成立 則執(zhí)行循環(huán)體 4 按表達式3修改控制變量 對于遞增型為原控制變量值的后續(xù) 對于遞減型為原控制變量值的前導 5 返回步驟 2 6 結束循環(huán) 求解表達式1 表達式2 循環(huán)體 求解表達式3 for語句的下一語句 false true for語句的流程圖 例 求Fibonacci數列的前40個數項 Fibonacci數列 1 1 2 3 5 8 13 21 34 從數列看到 F1 1 n 1 F2 1 n 2 Fn Fn 1 Fn 2 n 3 for語句使用的一些技巧 有時 for語句在表達式1和表達式3的位置上需要包含多個表達式 這時可使用Java提供的逗號運算符來實現 逗號運算符是用逗號 分隔多個表達式 被看作一個表達式 這樣就可以在只能放一個表達式的地方放任意多個表達式 只須用逗號將它們分隔開 如 for i 1 j 10 i j i j 表達式1 表達式2及表達式3都可以為空語句 但分號不能省略 三者均為空的時候 相當于一個無限循環(huán) 如 for 注意點 由于Java語句是用分號結束的 一個容易犯的錯誤是在for語句的圓括號后面加了一個不應有的分號 例如 下面的程序是想要計算 1 2 99 在上例中 分號被放在循環(huán)體的前邊 相當于for語句的循環(huán)體為空語句 其結果是for循環(huán)體什么都不處理 此程序的編譯不會出任何錯誤 但當它運行時并不產生預期的結果 運行上面這個程序會得到如下輸出結果 value 100 一般來說 在循環(huán)次數預知的情況下 用for語句比較方便 而while語句和do while語句比較適合于循環(huán)次數不能預先確定的情況 循環(huán)嵌套 一個循環(huán)體內又包含另一個完整的循環(huán)結構 稱為循環(huán)的嵌套 內嵌的循環(huán)中還可以嵌套循環(huán) 這就是多重循環(huán) 上述三種循環(huán) while循環(huán) do while循環(huán)和for循環(huán) 語句之間可以相互嵌套使用 例 打印下面的數字圖案 每行打5個數字 每行各列數的值等于第一列數乘自己所在列號 12345246810369121548121620510152025 循環(huán)嵌套 publicclassLoop Loop publicstaticvoidmain Stringargs intI J K I表示行號 J表示列號 K存臨時計算的值for I 1 I 5 I for J 1 J 5 J K I J System out print K System out println 每打5列換行 例 百雞問題 已知公雞5元1只 母雞3元一只 小雞1元3只 要求用100元剛好買100只雞 問有多少種采購方案 分析 設變量I J K分別代表公雞數 母雞數及小雞數 則應滿足下列一些條件 I J K 100 只 I J K 0 5I 3J K 3 100 元 若用100元全部買公雞 最多只能買20只 所以I 20 同樣地母雞最多只能買33只 所以J 33 而小雞數目就是100 I J 根據以上分析 可編程如下 例 百雞問題 publicclassLoop Loop publicstaticvoidmain Stringargs intI J K System out println 公雞母雞小雞 for I 0 I 20 I for J 0 J 33 J K 100 I J if 5 I 3 J K 3 0 100 注意 K 3 0 System out println I J K 循環(huán)語句正常結束是在循環(huán)條件表達式的值變?yōu)閒alse的時候 但有時即使測試的條件為true 也希望循環(huán)立即終止 這時可以用跳轉語句break或continue語句實現 continue語句只能用于循環(huán)語句中 break可用于switch語句中 亦可用于循環(huán)語句中注意 Java中不支持goto語句 3 3跳轉語句 3 3 1break語句3 3 2continue語句 break語句的一般語法格式為 break 標號 其中 用 括起的標號部分是可選的 1 不帶標號的情況此時 break語句的功能是終止break所在的循環(huán)語句 轉去執(zhí)行其后的第一條語句 對于不帶標號的break語句 在執(zhí)行時有兩個特點 1 在有多重循環(huán)時 它只能使循環(huán)從本層的循環(huán)跳出來 2 跳出循環(huán)后轉移到本層循環(huán)的下一個語句 3 3 1break語句 publicclassbreakout publicstaticvoidmain Stringargs throwsIOException intI J K charch for I 1 I 1 I 最外層循環(huán)for J 1 J 2 J 第二層循環(huán) for K 1 K 2 K 內層循環(huán) ch char System in read if ch c break 結束內層循環(huán)語句System out println 333 if ch b break 結束第二層循環(huán)語句System out println 222 if ch a break 結束最外層循環(huán)語句System out println 111 例 不帶標號的break語句 2 帶標號的情況標號就是加在語句前面的一個合法的標識符 其后跟一個冒號 如下所示 標號 語句標號只是起到對語句標識的作用 帶標號的break語句的功能是使程序結束標號指明的外層循環(huán)語句 執(zhí)行該外層循環(huán)語句的后繼語句 標號應該定義在 要結束的 外層循環(huán)語句的開始處 帶標號的break語句的一種典型用法就是實現break語句所在的循環(huán)的外層循環(huán)語句 從內部直接跳出來 例如 importjava io classbreakto A publicstaticvoidmain Stringargs throwsIOException inti j charch A 標號A 外層循環(huán)for i 1 i 2 i for j 1 j 1 j 內層循環(huán) ch char System in read if ch a breakA 結束A對應的循環(huán)語句 外層循環(huán) System out println 222 System out println 111 continue語句只能在循環(huán)語句中使用 它和break語句的區(qū)別是continue語句只結束所在循環(huán)語句的本次循環(huán) 而不是終止整個循環(huán)語句的執(zhí)行 而break語句則是結束整個循環(huán)語句的執(zhí)行 continue語句的一般語法格式為 continue 標號 其中 用 括起的標號部分是可選的 1 不帶標號的使用情況此時 continue語句用來結束所在循環(huán)語句的本次循環(huán) 即跳過循環(huán)體中continue語句后面的語句 回到循環(huán)體的條件測試部分繼續(xù)執(zhí)行 不帶標號continue語句和不帶標號的break語句類似 只能對所在一層的循環(huán)起作用 3 3 2continue語句 publicclasscontinueto publicstaticvoidmain Stringargs throwsIOException intI J charch for I 1 I 1 I 外層循環(huán)for J 1 J 2 J 內層循環(huán) ch char System in read if ch b continue 結束內層循環(huán)的本次循環(huán)System out println 沒有結束內循環(huán) if ch a continue 結束外層循環(huán)的本次循環(huán)System out println 沒有結束外循環(huán) 例 不帶標號的continue語句 2 帶標號的使用情況此時 continue語句跳過標號所指的循環(huán)語句所有余下部分語句 回到標號所指循環(huán)語句塊的條件測試部分繼續(xù)執(zhí)行 注意標號應該定義在外層循環(huán)語句的開始處 下面是一個使用帶標號的continue語句的例子 importjava io classcontinue A publicstaticvoidmain Stringargs throwsIOException inti j charch A 標號A 外層循環(huán)for i 1 i 2 i for j 1 j 1 j 內層循環(huán) ch char System in read if ch a continueA 結束A對應的循環(huán)語句的本次循環(huán)System out println 本次內循環(huán)正常結束 System out println 本次外循環(huán)正常結束 1一維數組2多維數組 數組是相同類型的數據元素按順序組成的一種復合數據類型 元素在數組中的相對位置由下標來指明 數組中的每個元素通過數組名加下標進行引用 數組作為一種特殊的數據類型具有以下特點 1 一個數組中所有的元素應該是同一類型 2 數組中的元素是有順序的 3 數組中的一個元素通過數組名和數組下標來確定 數組 1 一維數組的說明與構造與C 中不同的是 Java中數組要用new操作符實例化才可使用 所以建立一個數組需要兩步 聲明數組 實例化格式 類型數組名 或 類型 數組名 數組名 new類型 數組長度 說明 第一行聲明一個數組名 并指明數組類型 可任何類型 和維數 第二行使用new操作符構造數組并初始化 缺省值 即為數組元素分配存儲空間 并為每個數組元素都賦予一個初值 1 一維數組 上面的第二步實例化可以暫時不做 到需要時再完成 也可將上面的二步合并為一步 類型數組名 new類型 數組長度 例 intlist 聲明一個整型數組list newint 3 為上面聲明的數組分配3個整數元素 的內存空間 并使每個元素初值為0合并為一步 intlist newint 3 2 數組的初始化數組初始化就是為數組元素指定初始值 通常在構造數組時 Jave會使每個數組元素初始化為一個默認值 但在許多情況下 并不希望數組的初值為默認值 此時 就需要用賦值語句來對數組進行初始化 數組的初始化方式有兩種 一 像初始化簡單類型一樣自動初始化數組 不用new 即在說明數組的同時進行初始化 稱為靜態(tài)初始化 二 僅用new創(chuàng)建數組 讓它取缺省值 到以后再為元素賦值 稱為動態(tài)初始化 例 inta 1 2 3 4 5 靜態(tài)初始化intlist newint 3 動態(tài)初始化上面的第一個語句聲明并創(chuàng)建了數組a 并且為數組每個元素賦初值 結果為 a 0 1 a 1 2 a 2 3 a 3 4 a 4 5上面的第二個語句僅聲明并創(chuàng)建了數組a 并未給數組賦初值 由Jave為數組元素默認初始化 于是得到三個元素并且都有初值 list 0 0 list 1 0 list 2 0注意 中所有數據的類型必須與數組的類型相同 3 數組元素的使用數組被實例化后 就可以在程序中像使用任何變量一樣來使用數組元素 即可以在任何允許使用變量的地方使用數組元素 數組元素的標識方式為 數組名 下標 例 a 3 b i c i 5 下標的取值范圍是從0開始 一直到數組的長度減1 對于上面例子中的list數組來說 它有3個元素 分別為 list 0 list 1 list 2 注意 不存在list 3 注意 1 下標只能為byte short int或char類型 不能為long 2 Java在程序編譯時并不對數組下標進行越界檢查 但在運行時會對數組下標進行越界檢查 以保證安全性 Java中的數組實際是Array類的一個對象 定義一個數組實際就是創(chuàng)建Array類的一個對象 該類中還有一些屬性和方法供數組使用 如對于每個數組都有一個屬性 length 它指明數組的長度 即元素個數 由程序自動計算 例如 list length指明了數組list的長度 Java中的數組還可利用數組名來互相賦值 但要注意 這種賦值實際是定義一個別名 即是同一數組的不同名字的引用 例如 inta 2 4 6 b b a System out println b 1 輸出4b 1 7 System out println a 1 輸出7 4 一維數組應用示例例 編寫一個程序 在其中建立一個有10個整數的數組 運行后從鍵盤輸入10個整數放入數組 然后輸出其中的最大數 importjava io publicclassArray1 publicstaticvoidmain Stringargs throwsIOException inti max a newint 10 bytebuf newbyte 20 Stringstr 程序如下 System out println 請輸入10個數 for i 0 i 9 i 輸入10個數 以回車分隔 System in read buf str newString buf a i Integer parseInt str trim max a 0 for i 1 i 9 i 找最大數if max a i max a i System out println 最大數是 max 與C 中類似 在Java中 當一維數組中的類型又是一個一維數組時 就構成了二維數組 以此類推 可構成更高維的數組 所以 多維數組是通過對一維數組的嵌套聲明來實現的 多維數組與一維數組一樣 需要聲明并實例化后才可使用 下面主要以二維數組為例來說明用法 1 二維數組的說明與創(chuàng)建二維數組說明的格式為 類型數組名 或類型 數組名 例如 intintArray 與一維數組一樣 此時還沒有為數組元素分配內存空間 還需要用new關鍵字來創(chuàng)建數組 然后才可以使用該數組的每個元素 2 多維數組 對二維數組來說 分配內存空間有下面幾種方法 直接為每一維分配空間 如 inta newint 2 3 該語句創(chuàng)建了一個二維數組a 其較高一維含兩個元素 每個元素為由3個整型數構成的一維整型數組 如下所示 從最高維開始 分別為每一維分配空間 如 intb newint 2 最高維含2個元素 每 個元素為一個整型數組b 0 newint 3 最高維第一個元素是一個長度 為3的整型數組b 1 newint 5 最高維第二個元素是一個長度 為5的整型數組下圖為該數組的示意圖 注意 在使用運算符new來分配內存時 對于多維數組至少要給出最高維的大小 如果在程序中出現inta2 newint 編譯器將要提示如下錯誤 Arraydimensionmissing2 二維數組元素的初始化二維數組元素的初始化同一維數組一樣有兩種方式 1 在說明數組的同時進行初始化 2 僅用new創(chuàng)建數組 讓它取缺省值 到以后再為元素賦值 稱為動態(tài)初始化 例 inta 1 2 3 4 5 6 該語句聲明了一個有6個元素的二維數組并初始化為 a 0 0 1a 1 0 2 a 1 1 3a 2 0 4 a 2 1 5 a 2 2 63 二維數組元素的引用對二維數組中每個元素 其引用方式為 數組名 下標1 下標2 其中下標1 下標2為非負的整型常數或表達式 如 a 2 3 cc i 2 j 3 i j為整型 等 同樣 每一維的下標取值都從0開始 4 二維數組應用示例例 編寫一個程序 計算4行4列整數矩陣的對角線元素之和 程序如下 publicclassArray2 publicstaticvoidmain Stringargs inti sum 0 inta 5 3 1 2 2 4 6 8 3 5 7 1 6 4 9 2 for i 0 i 3 i sum a i i System out println sum 示例1 輸出加法表 123456789123456789102345678910113456789101112456789101112135678910111213146789101112131415789101112131415168910111213141516179101112131415161718 例 編寫程序輸出加法表 加法表如下 3 5Java程序示例 程序 publicclassAdd publicstaticvoidmain Stringargs inti j System out println 123456789 for i 1 i 9 i System out print i for j 1 j 9 j if i j 9 System out print i j 1位數后空3格elseSystem out print i j 2位數后空2格System out println 示例2 整數排序 例 編寫程序 使整型數組的元素按升序排列 方法 使用采用選擇排序方法 選擇排序方法思想 與書上稍有些不同 n個元素排序 需要進行n 1趟 第1趟找出第1小的元素 與數組的第1個元素 即a 0 交換 從而最小的元素放到了最前面 第2趟找出第2小的元素 與數組的第2個元素 即a 1 交換 從而第2小的元素放到了第2位上 第n 1趟找出第n 1小的元素 與數組的第n 1個元素 即a n 2 交換 從而第n 1小的元素放到了第n 1位上 至此 數組排序完成 注 書上按降序排列 72 65 42 94 65 28 44 36 74 80 程序 publicclassOrderArray publicstaticvoidmain Stringargs intintArray 42 65 80 74 36 44 28 65 94 72 inti j k temp for i 0 i 8 i k i k存放區(qū)間中最小元素的下標 開始時為區(qū)間的第1個下標for j i 1 j 9 j 找出區(qū)間最小的元素 下標記在k中if intArray j intArray k k j temp intArray i intArray i intArray k intArray k temp for i 0 i 9 i System out println intArray i 1 輸出1到100中的偶數 一行5個 2 編寫程序 輸入短整數n 計算 S 1 1 2 1 2 3 1 2 n 3 編寫求一元二次方程的實根的程序 4 已知兩個正整數m n 編寫求它們的最大公約數的程序 提示 用輾轉相除法 方法 1 求m除n的余數r 2 如果r為0 則n為最大公約數 結束 否則轉 3 3 用n置m 用r置n 回到 1 第3章習題- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- Java 語言 程序控制 語句
裝配圖網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
鏈接地址:http://m.hcyjhs8.com/p-6375005.html