第2章 Java基本語(yǔ)法(控制語(yǔ)句與數(shù)組)_第1頁(yè)
第2章 Java基本語(yǔ)法(控制語(yǔ)句與數(shù)組)_第2頁(yè)
第2章 Java基本語(yǔ)法(控制語(yǔ)句與數(shù)組)_第3頁(yè)
第2章 Java基本語(yǔ)法(控制語(yǔ)句與數(shù)組)_第4頁(yè)
第2章 Java基本語(yǔ)法(控制語(yǔ)句與數(shù)組)_第5頁(yè)
已閱讀5頁(yè),還剩56頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第二章第二章 Java基本語(yǔ)法基本語(yǔ)法 控制語(yǔ)句及數(shù)組控制語(yǔ)句及數(shù)組本節(jié)學(xué)習(xí)目標(biāo)掌握掌握J(rèn)ava中的中的條件語(yǔ)句條件語(yǔ)句掌握掌握J(rèn)ava中的中的循環(huán)語(yǔ)句循環(huán)語(yǔ)句掌握掌握J(rèn)ava中的中的數(shù)組用法數(shù)組用法掌握掌握選擇排序、冒泡排序選擇排序、冒泡排序算法并能夠編碼實(shí)現(xiàn)算法并能夠編碼實(shí)現(xiàn)控制語(yǔ)句控制語(yǔ)句 控制語(yǔ)句控制語(yǔ)句用于控制程序的流程,以實(shí)現(xiàn)程序的各用于控制程序的流程,以實(shí)現(xiàn)程序的各種結(jié)構(gòu)方式。種結(jié)構(gòu)方式。 所有應(yīng)用程序開發(fā)環(huán)境都提供一個(gè)所有應(yīng)用程序開發(fā)環(huán)境都提供一個(gè)判定過(guò)程判定過(guò)程,稱為,稱為控制流語(yǔ)句,即程序控制語(yǔ)句,它用于引導(dǎo)應(yīng)用程序的控制流語(yǔ)句,即程序控制語(yǔ)句,它用于引導(dǎo)應(yīng)用程序的執(zhí)行。執(zhí)

2、行??刂普Z(yǔ)句控制語(yǔ)句 JAVA中的中的程序控制語(yǔ)句分為三類程序控制語(yǔ)句分為三類:(1)分支語(yǔ)句分支語(yǔ)句,包括,包括 if 語(yǔ)句和語(yǔ)句和 switch 語(yǔ)句;語(yǔ)句;(2)循環(huán)語(yǔ)句循環(huán)語(yǔ)句,包括,包括 for 循環(huán)語(yǔ)句、循環(huán)語(yǔ)句、while 循環(huán)語(yǔ)句和循環(huán)語(yǔ)句和do-while 循環(huán)語(yǔ)句;循環(huán)語(yǔ)句;(3)跳轉(zhuǎn)語(yǔ)句,包括)跳轉(zhuǎn)語(yǔ)句,包括break語(yǔ)句、語(yǔ)句、continue語(yǔ)句和語(yǔ)句和return語(yǔ)句。語(yǔ)句。分支語(yǔ)句分支語(yǔ)句分支語(yǔ)句分支語(yǔ)句是邏輯選擇的核心,同時(shí)也是所有流程控制是邏輯選擇的核心,同時(shí)也是所有流程控制結(jié)構(gòu)中最基礎(chǔ)的控制語(yǔ)句。結(jié)構(gòu)中最基礎(chǔ)的控制語(yǔ)句。程序在執(zhí)行過(guò)程中會(huì)根據(jù)程序在執(zhí)行過(guò)程中

3、會(huì)根據(jù)條件條件來(lái)選擇執(zhí)行程序分支。來(lái)選擇執(zhí)行程序分支。分支語(yǔ)句包含兩種重要的語(yǔ)句,使用它們可以實(shí)現(xiàn)程序分支語(yǔ)句包含兩種重要的語(yǔ)句,使用它們可以實(shí)現(xiàn)程序流程的分支控制,這兩種語(yǔ)句是流程的分支控制,這兩種語(yǔ)句是if和和switch語(yǔ)句語(yǔ)句。Java 中的中的 if 條件結(jié)構(gòu)條件結(jié)構(gòu)Java 與與 C+ 中的條件判斷語(yǔ)句對(duì)比:中的條件判斷語(yǔ)句對(duì)比:分支語(yǔ)句分支語(yǔ)句u if 語(yǔ)句語(yǔ)句 圖圖2-1 if語(yǔ)句流程圖語(yǔ)句流程圖 分支語(yǔ)句分支語(yǔ)句u ifelse語(yǔ)句語(yǔ)句 圖圖2-2 ifelse流程圖流程圖 分支語(yǔ)句分支語(yǔ)句u 嵌套使用嵌套使用ifelse語(yǔ)句語(yǔ)句 圖圖2-3 ifelse語(yǔ)句的基本嵌套形式語(yǔ)

4、句的基本嵌套形式Java 中的嵌套中的嵌套 ifif(表達(dá)式表達(dá)式1) if(表達(dá)式表達(dá)式2) / 表達(dá)式表達(dá)式2為真時(shí)執(zhí)行為真時(shí)執(zhí)行 else / 表達(dá)式表達(dá)式2為假時(shí)執(zhí)行為假時(shí)執(zhí)行 else /表達(dá)式表達(dá)式1為假時(shí)執(zhí)行為假時(shí)執(zhí)行if 塊中又嵌入塊中又嵌入 if Java 中的嵌套中的嵌套if:import java.util.Scanner;public class ExampleIf public static void main(String args) System.out.print(請(qǐng)輸入三個(gè)整數(shù),它們之間用空格隔開:請(qǐng)輸入三個(gè)整數(shù),它們之間用空格隔開:); Scanner sc

5、anner=new Scanner(System.in); int a=scanner.nextInt(); int b=scanner.nextInt(); int c=scanner.nextInt(); int t; if(ab) t=a;a=b;b=t; if(ac) t=a;a=c;c=t; if(bc) t=b;b=c;c=t; System.out.println(a=+a+,b=+b+,c=+c); 演示示例演示示例1:使用:使用if選擇結(jié)構(gòu)選擇結(jié)構(gòu) 使用使用if選擇結(jié)構(gòu)解決問(wèn)題選擇結(jié)構(gòu)解決問(wèn)題1:輸入三個(gè)數(shù),并按小到大輸出:輸入三個(gè)數(shù),并按小到大輸出Java 中的中的if讀取

6、用戶輸入讀取用戶輸入在運(yùn)行時(shí)讀取用戶輸入使用使用Scanner類(類(JDK5.0以上)以上) import java.util.Scanner; Scanner scanner=new Scanner(System.in); int a = scanner.nextInt(); int b = scanner.nextInt(); int c = scanner.nextInt();Scanner類有類有nextInt,nextDouble等方法。等方法。 使用使用多重多重if選擇結(jié)構(gòu)選擇結(jié)構(gòu)Java 中的嵌套中的嵌套 if 將成績(jī)分成幾個(gè)連續(xù)區(qū)間判斷。使用單個(gè)將成績(jī)分成幾個(gè)連續(xù)區(qū)間判斷。使

7、用單個(gè)if選擇結(jié)選擇結(jié)構(gòu)無(wú)法完成,使用多個(gè)構(gòu)無(wú)法完成,使用多個(gè)if選擇結(jié)構(gòu)很麻煩選擇結(jié)構(gòu)很麻煩 差良好中等優(yōu)秀06090801001、對(duì)學(xué)員的結(jié)業(yè)考試成績(jī)?cè)u(píng)測(cè)、對(duì)學(xué)員的結(jié)業(yè)考試成績(jī)?cè)u(píng)測(cè) 成績(jī)成績(jī)=90 :優(yōu)秀:優(yōu)秀 成績(jī)成績(jī)=80 :良好:良好 成績(jī)成績(jī)=60 :中等:中等 成績(jī)成績(jī)= 90 ) System.out.println(優(yōu)秀優(yōu)秀); else if (score = 80 ) System.out.println(良好良好); else if (score = 60 ) System.out.println(中等中等); else System.out.println(差差);

8、大于等于大于等于90分分大于等于大于等于60分,小于分,小于80分分小于小于60分分大于等于大于等于80分,小于分,小于90分分演示示例演示示例2:使用:使用多重多重if選擇結(jié)構(gòu)(選擇結(jié)構(gòu)(ExampleMoreIf)使用使用多重多重if選擇結(jié)構(gòu)解決問(wèn)題選擇結(jié)構(gòu)解決問(wèn)題2Java 中的嵌套中的嵌套if 使用使用switch選擇結(jié)構(gòu)選擇結(jié)構(gòu) 該問(wèn)題屬于該問(wèn)題屬于等值等值判斷判斷 解決方法:解決方法:使用多重使用多重if選擇結(jié)構(gòu)實(shí)現(xiàn)選擇結(jié)構(gòu)實(shí)現(xiàn)使用使用switch選擇結(jié)構(gòu)解決選擇結(jié)構(gòu)解決2、歡歡參加計(jì)算機(jī)編程大賽、歡歡參加計(jì)算機(jī)編程大賽如果獲得第一名,將參加麻省理工大學(xué)組織的如果獲得第一名,將參加

9、麻省理工大學(xué)組織的1個(gè)月夏令營(yíng)個(gè)月夏令營(yíng)如果獲得第二名,將獎(jiǎng)勵(lì)如果獲得第二名,將獎(jiǎng)勵(lì)I(lǐng)BM筆記本電腦一臺(tái)筆記本電腦一臺(tái)如果獲得第三名,將獎(jiǎng)勵(lì)小米手機(jī)一個(gè)如果獲得第三名,將獎(jiǎng)勵(lì)小米手機(jī)一個(gè)否則,沒有任何獎(jiǎng)勵(lì)否則,沒有任何獎(jiǎng)勵(lì)switch (表達(dá)式表達(dá)式) case 常量常量 1:語(yǔ)句語(yǔ)句1;break; case 常量常量 2:語(yǔ)句語(yǔ)句2;break;default:語(yǔ)句語(yǔ)句n;什么是什么是switch選擇結(jié)構(gòu)選擇結(jié)構(gòu)計(jì)算表達(dá)式的值計(jì)算表達(dá)式的值如果等于常量如果等于常量1 如果等于常量如果等于常量2 如果沒有找到匹配的值如果沒有找到匹配的值 switch選擇結(jié)構(gòu)選擇結(jié)構(gòu) int mingCi =

10、 1; switch (mingCi) case 1: System.out.println(參加麻省理工大學(xué)組織的參加麻省理工大學(xué)組織的1個(gè)月夏令營(yíng)個(gè)月夏令營(yíng)); break; case 2: System.out.println(“獎(jiǎng)勵(lì)獎(jiǎng)勵(lì)I(lǐng)BM筆記本電腦一臺(tái)筆記本電腦一臺(tái)); break; case 3: System.out.println(“獎(jiǎng)勵(lì)小米手機(jī)一個(gè)獎(jiǎng)勵(lì)小米手機(jī)一個(gè)); break; default: System.out.println(沒有任何獎(jiǎng)勵(lì)沒有任何獎(jiǎng)勵(lì) ); 第一名的情況下第一名的情況下第二名的情況下第二名的情況下第三名的情況下第三名的情況下其他情況下其他情況下使

11、用使用switch選擇結(jié)構(gòu)選擇結(jié)構(gòu)演示示例演示示例3:使用:使用switch選擇結(jié)構(gòu)選擇結(jié)構(gòu)使用使用switch選擇結(jié)構(gòu)解決問(wèn)題選擇結(jié)構(gòu)解決問(wèn)題4Java 中的中的循環(huán)循環(huán)語(yǔ)句語(yǔ)句回顧:回顧:C+中的循環(huán)語(yǔ)句有哪些?執(zhí)行過(guò)程怎中的循環(huán)語(yǔ)句有哪些?執(zhí)行過(guò)程怎樣?樣?生活中的循環(huán)生活中的循環(huán)循環(huán)結(jié)構(gòu)的特點(diǎn)循環(huán)結(jié)構(gòu)的特點(diǎn) 打印打印50份試卷份試卷10000米賽跑米賽跑旋轉(zhuǎn)的車輪旋轉(zhuǎn)的車輪循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) 循環(huán)條件循環(huán)條件循環(huán)操作循環(huán)操作鍥而不舍地學(xué)習(xí)鍥而不舍地學(xué)習(xí)什么是循環(huán)什么是循環(huán)System.out.println(第第1遍寫:好好學(xué)習(xí),天天向上!遍寫:好好學(xué)習(xí),天天向上!);System.ou

12、t.println(“第第2遍寫:好好學(xué)習(xí),天天向上!遍寫:好好學(xué)習(xí),天天向上!);System.out.println(“第第100遍寫:好好學(xué)習(xí),天天向上!遍寫:好好學(xué)習(xí),天天向上!); 100條條為什么需要循環(huán)為什么需要循環(huán)2-1決定寫決定寫一萬(wàn)遍一萬(wàn)遍“好好學(xué)習(xí),天天向上!好好學(xué)習(xí),天天向上!” ,怎么辦?怎么辦?1、張浩、張浩Java考試成績(jī)未達(dá)到自己的目標(biāo)??荚嚦煽?jī)未達(dá)到自己的目標(biāo)。為了表明自己勤奮學(xué)習(xí)的決心,他決定寫一為了表明自己勤奮學(xué)習(xí)的決心,他決定寫一百遍百遍“好好學(xué)習(xí),天天向上!好好學(xué)習(xí),天天向上!”System.out.println(第第1遍寫:好好學(xué)習(xí),天天向上!遍寫

13、:好好學(xué)習(xí),天天向上!);System.out.println(“第第2遍寫:好好學(xué)習(xí),天天向上!遍寫:好好學(xué)習(xí),天天向上!);System.out.println(第第3遍寫:好好學(xué)習(xí),天天向上!遍寫:好好學(xué)習(xí),天天向上!);System.out.println(“第第4遍寫:好好學(xué)習(xí),天天向上!遍寫:好好學(xué)習(xí),天天向上!);System.out.println(“第第9999遍寫:好好學(xué)習(xí),天天向上!遍寫:好好學(xué)習(xí),天天向上!);System.out.println(“第第10000遍寫:好好學(xué)習(xí),天天向上!遍寫:好好學(xué)習(xí),天天向上!);為什么需要循環(huán)為什么需要循環(huán)2-2沒有使用循環(huán)結(jié)構(gòu)沒

14、有使用循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)當(dāng)條件為當(dāng)條件為true時(shí)反復(fù)執(zhí)行某個(gè)語(yǔ)句時(shí)反復(fù)執(zhí)行某個(gè)語(yǔ)句(1)計(jì)數(shù)器循環(huán))計(jì)數(shù)器循環(huán)(2)指定次數(shù)指定次數(shù)的循環(huán),最常見的是的循環(huán),最常見的是for循環(huán)循環(huán)(3)循環(huán)次數(shù)不定循環(huán)次數(shù)不定的循環(huán),通常需要在循環(huán)體中檢測(cè)的循環(huán),通常需要在循環(huán)體中檢測(cè)某個(gè)條件,當(dāng)條件不滿足時(shí)跳出循環(huán)。某個(gè)條件,當(dāng)條件不滿足時(shí)跳出循環(huán)。 While循環(huán)、循環(huán)、DoWhile循環(huán)循環(huán) While 循環(huán)循環(huán)while 循環(huán)的語(yǔ)法格式循環(huán)的語(yǔ)法格式表達(dá)式表達(dá)式1while ( 邏輯表達(dá)式邏輯表達(dá)式) 循環(huán)體 ; 循環(huán)體被執(zhí)行循環(huán)體被執(zhí)行 循環(huán)變量初始化循環(huán)變量初始化條件判斷條件判斷int

15、i = 1;while ( i = 100 ) System.out.println(“第第” +i+ “遍寫:遍寫: 好好學(xué)習(xí),天天向上!好好學(xué)習(xí),天天向上!); i +;i=10000 While 循環(huán)循環(huán)使用使用 while 循環(huán)解決問(wèn)題循環(huán)解決問(wèn)題1更新循環(huán)變量更新循環(huán)變量任務(wù)2-3 猜字游戲請(qǐng)結(jié)合本章學(xué)習(xí)到的請(qǐng)結(jié)合本章學(xué)習(xí)到的While循環(huán)語(yǔ)句和循環(huán)語(yǔ)句和ifelse分分支語(yǔ)句支語(yǔ)句實(shí)現(xiàn)一個(gè)猜字游戲。實(shí)現(xiàn)一個(gè)猜字游戲。要求產(chǎn)生一個(gè)要求產(chǎn)生一個(gè)1100內(nèi)的隨機(jī)整數(shù),然后根據(jù)輸內(nèi)的隨機(jī)整數(shù),然后根據(jù)輸入的數(shù)字進(jìn)行猜測(cè)。如果輸入的數(shù)字太大,則會(huì)提入的數(shù)字進(jìn)行猜測(cè)。如果輸入的數(shù)字太大,則會(huì)提

16、示猜得太大;如果輸入的數(shù)字太小,則會(huì)提示猜得示猜得太大;如果輸入的數(shù)字太小,則會(huì)提示猜得太??;直到猜對(duì)時(shí)自動(dòng)退出本次游戲。太小;直到猜對(duì)時(shí)自動(dòng)退出本次游戲。演示示例演示示例4:使用:使用while 和和 if .else語(yǔ)句語(yǔ)句為什么使用為什么使用for循環(huán)循環(huán) int i=0;while(i100)System.out.println(好好學(xué)習(xí)!好好學(xué)習(xí)!);i+; for(int i=0;i100;i+) System.out.println(好好學(xué)習(xí)!好好學(xué)習(xí)!); for比比while更簡(jiǎn)潔更簡(jiǎn)潔回顧問(wèn)題:輸出回顧問(wèn)題:輸出100次次“好好學(xué)習(xí)!好好學(xué)習(xí)!”使用使用while循環(huán)結(jié)構(gòu)循

17、環(huán)結(jié)構(gòu)使用使用for循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) 特點(diǎn):循環(huán)次數(shù)固定特點(diǎn):循環(huán)次數(shù)固定for循環(huán)循環(huán)for( ; ; ) ; 條件為條件為true 循環(huán)體被執(zhí)行循環(huán)體被執(zhí)行 for ( int i = 0 ; i 100 ; i+ ) System.out.println(好好學(xué)習(xí)!好好學(xué)習(xí)!); 代碼規(guī)范:代碼規(guī)范:格式對(duì)齊、代碼的縮進(jìn)格式對(duì)齊、代碼的縮進(jìn) 表達(dá)式表達(dá)式1 表達(dá)式表達(dá)式2 表達(dá)式表達(dá)式3 循環(huán)操作循環(huán)操作 循環(huán)變量初始化循環(huán)變量初始化條件判斷條件判斷更新循環(huán)變量更新循環(huán)變量1243for循環(huán)的語(yǔ)法和執(zhí)行順序循環(huán)的語(yǔ)法和執(zhí)行順序for(;i10;i+) System.out.println

18、(這是這是 +i);int i=0;編譯錯(cuò)誤:編譯錯(cuò)誤:變量變量 i 沒有初始化沒有初始化for( ; ; ) ; 不能省略不能省略 可省略可省略表達(dá)式表達(dá)式1省略,循環(huán)變量省略,循環(huán)變量的初始值在的初始值在for語(yǔ)句之前語(yǔ)句之前由賦值語(yǔ)句取得由賦值語(yǔ)句取得for循環(huán)常見問(wèn)題循環(huán)常見問(wèn)題4-1for(int i=0;i+) System.out.println(這是這是 +i);編譯正確,但是缺少編譯正確,但是缺少循環(huán)條件,造成死循環(huán)循環(huán)條件,造成死循環(huán)for循環(huán)常見問(wèn)題循環(huán)常見問(wèn)題4-2for(int i=0;i10;) System.out.println(這是這是 +i); i+;省略表

19、達(dá)式省略表達(dá)式3,在循環(huán)體內(nèi)應(yīng)設(shè)法改,在循環(huán)體內(nèi)應(yīng)設(shè)法改變循環(huán)變量的值以結(jié)束循環(huán)變循環(huán)變量的值以結(jié)束循環(huán)編譯通過(guò),但是循環(huán)變量的編譯通過(guò),但是循環(huán)變量的值無(wú)變化,造成死循環(huán)值無(wú)變化,造成死循環(huán)for循環(huán)常見問(wèn)題循環(huán)常見問(wèn)題4-3for(;) System.out.println(這是測(cè)試這是測(cè)試);表達(dá)式全省略,無(wú)條件判斷,循環(huán)變量無(wú)改變,表達(dá)式全省略,無(wú)條件判斷,循環(huán)變量無(wú)改變,應(yīng)在循環(huán)體內(nèi)設(shè)法結(jié)束循環(huán);否則會(huì)造成死循環(huán)應(yīng)在循環(huán)體內(nèi)設(shè)法結(jié)束循環(huán);否則會(huì)造成死循環(huán)死循環(huán)死循環(huán)for循環(huán)常見問(wèn)題循環(huán)常見問(wèn)題4-4課堂練習(xí)(思考)如何輸出如下數(shù)字組成的圖案?如何輸出如下數(shù)字組成的圖案?11 21

20、2 31 2 3 41 2 3 4 5演示練習(xí):演示練習(xí): 用二重循環(huán)打印數(shù)字圖案用二重循環(huán)打印數(shù)字圖案思考題代碼分析關(guān)鍵代碼(關(guān)鍵代碼(PrintGraphic)int i, j; / 循環(huán)變量循環(huán)變量/ 外層循環(huán)控制打印的行數(shù)外層循環(huán)控制打印的行數(shù)for (i = 1; i = 5; i+) / 內(nèi)層循環(huán)控制每行打印數(shù)字的個(gè)數(shù)內(nèi)層循環(huán)控制每行打印數(shù)字的個(gè)數(shù) for (j = 1; j = i; j+) System.out.print(j); System.out.print(t); System.out.println(); 外層循環(huán)變量控制外層循環(huán)變量控制 內(nèi)層循環(huán)的結(jié)束條件內(nèi)層循環(huán)的

21、結(jié)束條件退出循環(huán)u Break用于從用于從 while, for, do/while或或switch語(yǔ)句的語(yǔ)句的循環(huán)體循環(huán)體退出退出u Continue用于提前用于提前結(jié)束本次循環(huán)結(jié)束本次循環(huán) ,進(jìn)入下進(jìn)入下一次循環(huán),一次循環(huán),用于用于 while, for 或或do/while語(yǔ)句語(yǔ)句u Java支持跳轉(zhuǎn)到標(biāo)記處,請(qǐng)自學(xué)這一語(yǔ)法。支持跳轉(zhuǎn)到標(biāo)記處,請(qǐng)自學(xué)這一語(yǔ)法。上機(jī)任務(wù)上機(jī)任務(wù) 2-4 循環(huán)與循環(huán)與continue語(yǔ)句的使用語(yǔ)句的使用編寫程序?qū)崿F(xiàn)下列圖形編寫程序?qū)崿F(xiàn)下列圖形:01 22 3 43 4 5 64 5 6 7 85 6 7 8 9 106 7 8 9 10 11 127 8 9

22、 10 11 12 13 148 9 10 11 12 13 14 15 169 10 11 12 13 14 15 16 17 18Java 中的一維數(shù)組回顧:為什么要使用數(shù)組?回顧:為什么要使用數(shù)組?如何設(shè)置大小?如何設(shè)置大小?數(shù)據(jù)類型數(shù)據(jù)類型 數(shù)組名數(shù)組名 = new 數(shù)據(jù)類型數(shù)據(jù)類型大小大小 ;數(shù)據(jù)類型數(shù)據(jù)類型 數(shù)組名數(shù)組名 ; 數(shù)據(jù)類型數(shù)據(jù)類型 數(shù)組名數(shù)組名 ; 聲明數(shù)組時(shí)不規(guī)聲明數(shù)組時(shí)不規(guī)定數(shù)組長(zhǎng)度定數(shù)組長(zhǎng)度 數(shù)組數(shù)組的特點(diǎn)數(shù)組的特點(diǎn) Arrays(數(shù)組)數(shù)組)u 一種簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)一種簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)u 元素具有相同的數(shù)據(jù)類型元素具有相同的數(shù)據(jù)類型u 一旦創(chuàng)建之后,尺寸保持不變一旦

23、創(chuàng)建之后,尺寸保持不變u 元素在內(nèi)存中連續(xù)分布元素在內(nèi)存中連續(xù)分布數(shù)組的下標(biāo)Subscript(下標(biāo))(下標(biāo)) 亦稱為亦稱為 index(索引),代表元素在整個(gè)數(shù)組(索引),代表元素在整個(gè)數(shù)組中的位置中的位置 必須是必須是整數(shù)或整數(shù)表達(dá)式整數(shù)或整數(shù)表達(dá)式,例如例如 a = 5; b = 6; c a + b += 2;數(shù)組名 從前面幻燈片所畫的從前面幻燈片所畫的數(shù)組數(shù)組 c中中u C代表代表數(shù)組名數(shù)組名u c.length得到得到c這個(gè)數(shù)組的長(zhǎng)度這個(gè)數(shù)組的長(zhǎng)度u c 有有12 個(gè)元素個(gè)元素 ( c0, c1, c11 )u c0這個(gè)元素的值是這個(gè)元素的值是 45u 在在java中擁有最高優(yōu)先級(jí)

24、中擁有最高優(yōu)先級(jí)方法一:邊聲明邊賦值方法一:邊聲明邊賦值解決解決int score = 89, 79, 76;int score = new int 89, 79, 76;如何初始化數(shù)組如何初始化數(shù)組不能指定數(shù)組長(zhǎng)不能指定數(shù)組長(zhǎng)度度 方法二:先聲明后初始化方法二:先聲明后初始化float fArray = new float2;fArray0 = 4.0f;fArray1 = 5;常見錯(cuò)誤int array = new int3 0, 1 ,2; / 聲明并初始化一維數(shù)組聲明并初始化一維數(shù)組代碼錯(cuò)誤代碼錯(cuò)誤循環(huán)輸出數(shù)組元素如何循環(huán)輸出數(shù)組元素呢?如何循環(huán)輸出數(shù)組元素呢?/ 循環(huán)輸出數(shù)組元素循環(huán)

25、輸出數(shù)組元素int array = new int 0, 1 ,2, 3, 4; / 聲明并初始化一維數(shù)聲明并初始化一維數(shù)組組for (int i = 0; i array.length; i+ ) / 輸出數(shù)組中的所有元輸出數(shù)組中的所有元素素 System.out.println(arrayi); 常作為循環(huán)的條件常作為循環(huán)的條件訪問(wèn)數(shù)組訪問(wèn)數(shù)組u 當(dāng)用循環(huán)語(yǔ)句遍歷訪問(wèn)數(shù)組元素時(shí)當(dāng)用循環(huán)語(yǔ)句遍歷訪問(wèn)數(shù)組元素時(shí)p 下標(biāo)不能小于下標(biāo)不能小于0p 下標(biāo)必須小于最大的數(shù)組元素?cái)?shù)目下標(biāo)必須小于最大的數(shù)組元素?cái)?shù)目 否則否則u 對(duì)于非法的數(shù)組下標(biāo),對(duì)于非法的數(shù)組下標(biāo),Java會(huì)拋出異常會(huì)拋出異常Array

26、IndexOutOfBoundsExceptionp 處理異常,需要使用處理異常,需要使用trycatch語(yǔ)句語(yǔ)句數(shù)組的定義和使用數(shù)組的定義和使用public class ArrayTpublic static void main(String args)int i;int x=1,2,3,4,5,6,7,8,9,10;for(i=0;i10;i+) System.out.println(x+i+ is +xi);冒泡排序冒泡排序:冒泡排序:每次比較相鄰兩數(shù)每次比較相鄰兩數(shù)小的交換到前面小的交換到前面每輪結(jié)束后最大的數(shù)交換到最后每輪結(jié)束后最大的數(shù)交換到最后1625990231625923909

27、2523第一輪:比較了第一輪:比較了4次次第二輪:比較了第二輪:比較了3次次第三輪:比較了第三輪:比較了2次次第四輪:比較了第四輪:比較了1次次用二重循環(huán)實(shí)現(xiàn)冒泡排序i = 0i = 1i = 2i = 3第一輪:比較了第一輪:比較了4次次第二輪:比較了第二輪:比較了3次次第三輪:比較了第三輪:比較了2次次第四輪:比較了第四輪:比較了1次次外層循環(huán)外層循環(huán)如何用二重循環(huán)將如何用二重循環(huán)將5個(gè)數(shù)字排序?個(gè)數(shù)字排序?N = 55個(gè)數(shù)字存放在個(gè)數(shù)字存放在一維數(shù)組一維數(shù)組中中外層外層循環(huán)控制比較多少輪,循環(huán)變量循環(huán)控制比較多少輪,循環(huán)變量 i內(nèi)層內(nèi)層循環(huán)控制每輪比較多少次,循環(huán)變量循環(huán)控制每輪比較多少

28、次,循環(huán)變量 j內(nèi)層循環(huán)內(nèi)層循環(huán)循環(huán)循環(huán)4次次:j 4循環(huán)循環(huán)3次次:j 3循環(huán)循環(huán)2次次:j 2循環(huán)循環(huán)1次次:j 1i 4i N-1j ?j 4-ij N-1-i用二重循環(huán)實(shí)現(xiàn)冒泡排序代碼框架:代碼框架:for (i = 0; i N-1 ; i+) for (j = 0; j N-1-i ; j+) / 比較比較 j 和和 j+1 位置的元素位置的元素 / 如果前大后小就交換如果前大后小就交換 冒泡排序速記口訣冒泡排序速記口訣(升序):(升序):N 個(gè)數(shù)字來(lái)排隊(duì)個(gè)數(shù)字來(lái)排隊(duì)兩兩相比小靠前兩兩相比小靠前外層循環(huán)外層循環(huán) N-1內(nèi)層循環(huán)內(nèi)層循環(huán) N-1-i冒泡排序關(guān)鍵代碼分析:關(guān)鍵代碼分析:

29、for (i = 0; i num.length -1 ; i+) for (j = 0; j numj + 1) / 交換元素交換元素 temp = numj; numj = numj + 1; numj + 1 = temp; 經(jīng)過(guò)一輪比較交換,經(jīng)過(guò)一輪比較交換,最大的元素?fù)Q到了最后最大的元素?fù)Q到了最后面面外層循環(huán)終止條件:數(shù)組長(zhǎng)度外層循環(huán)終止條件:數(shù)組長(zhǎng)度-1內(nèi)層循環(huán)終止條件:內(nèi)層循環(huán)終止條件:數(shù)組長(zhǎng)度數(shù)組長(zhǎng)度 1 - i演示演示冒泡排序,冒泡排序,設(shè)置設(shè)置斷點(diǎn)跟蹤斷點(diǎn)跟蹤數(shù)組元素的類型除了可以是基本數(shù)據(jù)類型、類對(duì)數(shù)組元素的類型除了可以是基本數(shù)據(jù)類型、類對(duì)象外,還可以是象外,還可以是數(shù)組

30、數(shù)組。前面介紹的數(shù)組也稱為一維數(shù)組,如果一維數(shù)組前面介紹的數(shù)組也稱為一維數(shù)組,如果一維數(shù)組的元素又是一維數(shù)組,則稱此數(shù)組為二維數(shù)組。的元素又是一維數(shù)組,則稱此數(shù)組為二維數(shù)組。二維數(shù)組二維數(shù)組常用來(lái)表示二維表,即以行常用來(lái)表示二維表,即以行(rows)及列及列(columns)的方式組織數(shù)據(jù)。的方式組織數(shù)據(jù)。二維數(shù)組二維數(shù)組的定義方式如下:二維數(shù)組的定義方式如下:或或與一維數(shù)組一樣,這時(shí)還沒有給數(shù)組分配空間;與一維數(shù)組一樣,這時(shí)還沒有給數(shù)組分配空間;對(duì)于對(duì)象數(shù)組,還需要給數(shù)組元素分配空間。對(duì)于對(duì)象數(shù)組,還需要給數(shù)組元素分配空間。二維數(shù)組的初始化也分為靜態(tài)和動(dòng)態(tài)兩種:二維數(shù)組的初始化也分為靜態(tài)和動(dòng)

31、態(tài)兩種: 二維數(shù)組type arrayName ;type arrayName;靜態(tài)初始化:在定義數(shù)組的同時(shí)為數(shù)組分配空間。靜態(tài)初始化:在定義數(shù)組的同時(shí)為數(shù)組分配空間。如:如:二維數(shù)組int intArray =1,2,2,3,3,4;動(dòng)態(tài)初始化:對(duì)二維數(shù)組來(lái)說(shuō),分配內(nèi)存空間有下動(dòng)態(tài)初始化:對(duì)二維數(shù)組來(lái)說(shuō),分配內(nèi)存空間有下面兩種方法:面兩種方法:一種方法是直接為每一維分配空間,格式如下:一種方法是直接為每一維分配空間,格式如下: 例如:例如: 二維數(shù)組type arrayName =new typearraylength1arraylength2int a = new int23;另一種方法是

32、從最高維開始(而且另一種方法是從最高維開始(而且必須從最高維開必須從最高維開始始),分別為每一維分配空間。例如,),分別為每一維分配空間。例如,二維數(shù)組String s =new String2 ;s0=new String2;s1=new String3;s00=new String(Good);s01=new String(Luck);s10=new String(to);s11=new String(you);s12=new String(!);例例5 編寫程序建立并顯示如編寫程序建立并顯示如圖所示的二維表,并計(jì)算累圖所示的二維表,并計(jì)算累加和最大的行號(hào)。設(shè)元素值加和最大的行號(hào)。設(shè)元素值都為正整數(shù)。都為正整數(shù)。public class TableTester public static void main(String args) int myTable = 23, 45, 65, 34, 21, 67, 78, 46, 14, 18, 46, 98, 63, 88, 98, 81, 64, 90, 21, 14, 23, 54, 43, 55, 76, 22, 43, 33; 二維數(shù)組/顯示二維表顯示二維表 for

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論