Java語(yǔ)言程序設(shè)計(jì)基礎(chǔ)篇中文PPT課件_第1頁(yè)
Java語(yǔ)言程序設(shè)計(jì)基礎(chǔ)篇中文PPT課件_第2頁(yè)
Java語(yǔ)言程序設(shè)計(jì)基礎(chǔ)篇中文PPT課件_第3頁(yè)
Java語(yǔ)言程序設(shè)計(jì)基礎(chǔ)篇中文PPT課件_第4頁(yè)
Java語(yǔ)言程序設(shè)計(jì)基礎(chǔ)篇中文PPT課件_第5頁(yè)
已閱讀5頁(yè),還剩99頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1開放問題開放問題讀取一百數(shù)字,計(jì)算它們的平均值,然后找出有多少個(gè)數(shù)大于平均值。 第1頁(yè)/共104頁(yè)2解決方案解決方案Run第2頁(yè)/共104頁(yè)3學(xué)習(xí)目標(biāo)學(xué)習(xí)目標(biāo) 描述數(shù)組在程序設(shè)計(jì)中的必要性 (第節(jié))。 聲明數(shù)組引用變量、創(chuàng)建數(shù)組 (第)。 初始化數(shù)組中的值 (第)。 使用下標(biāo)變量訪問數(shù)組元素(第)。 利用一條數(shù)組初始化語(yǔ)法聲明、創(chuàng)建和初始化數(shù)組 (第)。 編寫程序?qū)崿F(xiàn)常用的數(shù)組操作(顯示數(shù)組、對(duì)所有元素求和、求最大和最小元素、隨意打亂、移動(dòng)元素)(第6.2.6節(jié) )。 使用for - each循環(huán)簡(jiǎn)化程序設(shè)計(jì)(第)。 在LottoNumbers和DeckOfCards問題中應(yīng)用數(shù)組 (第6.

2、3-6.4節(jié))。 將一個(gè)數(shù)組的內(nèi)容復(fù)制到另一個(gè)數(shù)組 (第節(jié))。 開發(fā)和調(diào)用帶數(shù)組參數(shù)和返回值的方法(第節(jié))。 定義帶變長(zhǎng)參數(shù)列表的方法(第節(jié))。 使用線性查找算法(第6 .9.1節(jié))或二分查找算法(第)查找數(shù)組的元素。 使用選擇排序法對(duì)數(shù)組排序(第節(jié))。 使用插入排序算法使排序數(shù)組 (第)。 使用 Arrays 類中的方法(第節(jié))。第3頁(yè)/共104頁(yè)4介紹數(shù)組介紹數(shù)組數(shù)組是一種數(shù)據(jù)結(jié)構(gòu),它表示一組相同類型的數(shù)據(jù)。 5.6 4.5 3.3 13.2 4 34.33 34 45.45 99.993 11123 double myList = new double10; myList referen

3、ce myList0 myList1 myList2 myList3 myList4 myList5 myList6 myList7 myList8 myList9 元素值 數(shù)組引用變量 下標(biāo) 5處的 數(shù)組元素 第4頁(yè)/共104頁(yè)5聲明數(shù)組變量聲明數(shù)組變量datatype arrayRefVar;舉例: double myList;datatype arrayRefVar; / 這種風(fēng)格是允許的,但不推薦使用舉例: double myList;第5頁(yè)/共104頁(yè)6創(chuàng)建數(shù)組創(chuàng)建數(shù)組arrayRefVar = new datatypearraySize;舉例:myList = new double

4、10;myList0 引用數(shù)組中的第一個(gè)元素。myList9 引用數(shù)組中的最后一個(gè)元素。第6頁(yè)/共104頁(yè)7一步完成聲明和創(chuàng)建一步完成聲明和創(chuàng)建 datatype arrayRefVar = new datatypearraySize; double myList = new double10; datatype arrayRefVar = new datatypearraySize;double myList = new double10;第7頁(yè)/共104頁(yè)8數(shù)組的大小數(shù)組的大小一旦數(shù)組被創(chuàng)建就不能再修改它的大小。可以通過使用來求得數(shù)組的大小。舉例:myList.length returns

5、 10第8頁(yè)/共104頁(yè)9默認(rèn)值默認(rèn)值當(dāng)數(shù)組被創(chuàng)建后,它的元素被賦予默認(rèn)值 數(shù)值型基本數(shù)據(jù)類型的默認(rèn)值是0, char 類型的默認(rèn)值為u0000 ,而 boolean 類型默認(rèn)值為false。第9頁(yè)/共104頁(yè)10下標(biāo)變量下標(biāo)變量數(shù)組元素可以通過下標(biāo)來訪問。數(shù)組下標(biāo)是基于0的,就是說它從0開始到, 數(shù)組myList 包含10個(gè)double值而下標(biāo)是從0到9。數(shù)組中的每個(gè)元素都可以使用下面一般被稱為下標(biāo)變量的語(yǔ)法表示:arrayRefVarindex;第10頁(yè)/共104頁(yè)11使用下標(biāo)變量使用下標(biāo)變量創(chuàng)建數(shù)組后,可以采用和一般變量相同的方法使用下標(biāo)變量。例如:下面的代碼是將myList0和myLi

6、st1的值相加賦給myList2。myList2 = myList0 + myList1;第11頁(yè)/共104頁(yè)12數(shù)組初始化語(yǔ)法數(shù)組初始化語(yǔ)法一步完成數(shù)組的聲明、創(chuàng)建、初始化:double myList = 1.9, 2.9, 3.4, 3.5;這種縮略語(yǔ)法必須用在一條語(yǔ)句中。第12頁(yè)/共104頁(yè)13使用縮略符號(hào)使用縮略符號(hào)聲明、創(chuàng)建、初始化數(shù)組聲明、創(chuàng)建、初始化數(shù)組double myList = 1.9, 2.9, 3.4, 3.5;這里的縮略符號(hào)相當(dāng)于以下面的語(yǔ)句:double myList = new double4;myList0 = 1.9;myList1 = 2.9;myList2

7、 = 3.4;myList3 = 3.5; 第13頁(yè)/共104頁(yè)14注意注意 使用縮略符號(hào)時(shí),你必須將聲明、創(chuàng)建和初始化數(shù)組都放在一條語(yǔ)句中。將它們分開會(huì)引起語(yǔ)法錯(cuò)誤。例如:下面的語(yǔ)句就是錯(cuò)誤的:double myList;myList = 1.9, 2.9, 3.4, 3.5; 第14頁(yè)/共104頁(yè)15跟蹤數(shù)組程序跟蹤數(shù)組程序public class Test public static void main(String args) int values = new int5; for (int i = 1; i 5; i+) valuesi = i + valuesi-1; values0

8、 = values1 + values4; 聲明數(shù)組變量value,創(chuàng)建一個(gè)數(shù)組并將它的引用賦值給values動(dòng) 畫第15頁(yè)/共104頁(yè)16跟蹤數(shù)組程序跟蹤數(shù)組程序public class Test public static void main(String args) int values = new int5; for (int i = 1; i 5; i+) valuesi = i + valuesi-1; values0 = values1 + values4; i 變?yōu)?1動(dòng) 畫第16頁(yè)/共104頁(yè)17跟蹤數(shù)組程序跟蹤數(shù)組程序public class Test public sta

9、tic void main(String args) int values = new int5; for (int i = 1; i 5; i+) valuesi = i + valuesi-1; values0 = values1 + values4; i (=1)小于5動(dòng) 畫第17頁(yè)/共104頁(yè)18跟蹤數(shù)組程序跟蹤數(shù)組程序public class Test public static void main(String args) int values = new int5; for (int i = 1; i 5; i+) valuesi = i + valuesi-1; values0

10、 = values1 + values4; 這一行被執(zhí)行后,values1是1 After the first iteration 0 1 2 3 4 0 1 0 0 0 動(dòng) 畫第18頁(yè)/共104頁(yè)19跟蹤數(shù)組程序跟蹤數(shù)組程序public class Test public static void main(String args) int values = new int5; for (int i = 1; i 5; i+) valuesi = i + valuesi-1; values0 = values1 + values4; i+后,i 變?yōu)?2動(dòng) 畫 After the first

11、iteration 0 1 2 3 4 0 1 0 0 0 第19頁(yè)/共104頁(yè)20跟蹤數(shù)組程序跟蹤數(shù)組程序public class Test public static void main(String args) int values = new int5; for (int i = 1; i 5; i+) valuesi = i + valuesi-1; values0 = values1 + values4; i(= 2)小于5動(dòng) 畫 After the first iteration 0 1 2 3 4 0 1 0 0 0 第20頁(yè)/共104頁(yè)21跟蹤數(shù)組程序跟蹤數(shù)組程序public

12、 class Test public static void main(String args) int values = new int5; for (int i = 1; i 5; i+) valuesi = i + valuesi-1; values0 = values1 + values4; 這一行被執(zhí)行之后,values2 為3(2 + 1) After the second iteration 0 1 2 3 4 0 1 3 0 0 動(dòng) 畫第21頁(yè)/共104頁(yè)22跟蹤數(shù)組程序跟蹤數(shù)組程序public class Test public static void main(String

13、 args) int values = new int5; for (int i = 1; i 5; i+) valuesi = i + valuesi-1; values0 = values1 + values4; 這之后,i就 變?yōu)?3. After the second iteration 0 1 2 3 4 0 1 3 0 0 動(dòng) 畫第22頁(yè)/共104頁(yè)23跟蹤數(shù)組程序跟蹤數(shù)組程序public class Test public static void main(String args) int values = new int5; for (int i = 1; i 5; i+) v

14、aluesi = i + valuesi-1; values0 = values1 + values4; i(=3)依舊小于5 After the second iteration 0 1 2 3 4 0 1 3 0 0 動(dòng) 畫第23頁(yè)/共104頁(yè)24跟蹤數(shù)組程序跟蹤數(shù)組程序public class Test public static void main(String args) int values = new int5; for (int i = 1; i 5; i+) valuesi = i + valuesi-1; values0 = values1 + values4; 這一行之后

15、,values3變成 6(3 + 3) After the third iteration 0 1 2 3 4 0 1 3 6 0 動(dòng) 畫第24頁(yè)/共104頁(yè)25跟蹤數(shù)組程序跟蹤數(shù)組程序public class Test public static void main(String args) int values = new int5; for (int i = 1; i 5; i+) valuesi = i + valuesi-1; values0 = values1 + values4; 這之后,i變成4 After the third iteration 0 1 2 3 4 0 1 3

16、 6 0 動(dòng) 畫第25頁(yè)/共104頁(yè)26跟蹤數(shù)組程序跟蹤數(shù)組程序public class Test public static void main(String args) int values = new int5; for (int i = 1; i 5; i+) valuesi = i + valuesi-1; values0 = values1 + values4; i(=4) 仍舊小于5 After the third iteration 0 1 2 3 4 0 1 3 6 0 動(dòng) 畫第26頁(yè)/共104頁(yè)27跟蹤數(shù)組程序跟蹤數(shù)組程序public class Test public s

17、tatic void main(String args) int values = new int5; for (int i = 1; i 5; i+) valuesi = i + valuesi-1; values0 = values1 + values4; 這之后,values4變成 10(4 + 6) After the fourth iteration 0 1 2 3 4 0 1 3 6 10 動(dòng) 畫第27頁(yè)/共104頁(yè)28跟蹤數(shù)組程序跟蹤數(shù)組程序public class Test public static void main(String args) int values = ne

18、w int5; for (int i = 1; i 5; i+) valuesi = i + valuesi-1; values0 = values1 + values4; i+后,i 變成5動(dòng) 畫 After the fourth iteration 0 1 2 3 4 0 1 3 6 10 第28頁(yè)/共104頁(yè)29跟蹤數(shù)組程序跟蹤數(shù)組程序public class Test public static void main(String args) int values = new int5; for (int i = 1; i 5; i+) valuesi = i + valuesi-1;

19、values0 = values1 + values4; i ( =5) 5 為假。退出循環(huán)動(dòng) 畫 After the fourth iteration 0 1 2 3 4 0 1 3 6 10 第29頁(yè)/共104頁(yè)30跟蹤數(shù)組程序跟蹤數(shù)組程序public class Test public static void main(String args) int values = new int5; for (int i = 1; i 5; i+) valuesi = i + valuesi-1; values0 = values1 + values4; 這行之后,values0 為11 (1 +

20、 10) 0 1 2 3 4 11 1 3 6 10 動(dòng) 畫第30頁(yè)/共104頁(yè)31處理數(shù)組處理數(shù)組下面是一些示例:F(使用輸入值初始化數(shù)組)F(使用隨機(jī)數(shù)初始化數(shù)組)F(打印數(shù)組)F(對(duì)所有元素求和)F(找出最大元素)F(找出最大元素的最小下標(biāo)值)F(隨意打亂) 1.(移動(dòng)元素) 第31頁(yè)/共104頁(yè)32使用輸入值初始化數(shù)組使用輸入值初始化數(shù)組java.util.Scanner input = new java.util.Scanner(System.in);System.out.print(Enter + myList.length + values: );for (int i = 0;

21、i myList.length; i+) myListi = input.nextDouble();第32頁(yè)/共104頁(yè)33使用隨機(jī)數(shù)初始化數(shù)組使用隨機(jī)數(shù)初始化數(shù)組for (int i = 0; i myList.length; i+) myListi = Math.random() * 100;第33頁(yè)/共104頁(yè)34打印數(shù)組打印數(shù)組for (int i = 0; i myList.length; i+) System.out.print(myListi + );第34頁(yè)/共104頁(yè)35對(duì)所有元素求和對(duì)所有元素求和double total = 0;for (int i = 0; i myLi

22、st.length; i+) total += myListi;第35頁(yè)/共104頁(yè)36找出最大的元素找出最大的元素double max = myList0;for (int i = 1; i max) max = myListi;第36頁(yè)/共104頁(yè)37隨意打亂隨意打亂 for (int i = 0; i myList.length; i+) / Generate an index j randomly int index = (int)(Math.random() * myList.length); / Swap myListi with myListj double temp = myL

23、isti; myListi = myListindex; myListindex = temp; myList 0 1 . . . index A random index i swap 第37頁(yè)/共104頁(yè)38移動(dòng)元素移動(dòng)元素 double temp = myList0; / Retain the first element / Shift elements left for (int i = 1; i myList.length; i+) myListi - 1 = myListi; / Move the first element to fill in the last position

24、 myListmyList.length - 1 = temp; myList 第38頁(yè)/共104頁(yè)39增強(qiáng)型增強(qiáng)型for循環(huán)(循環(huán)(for - each循環(huán))循環(huán))引入了一個(gè)新的for循環(huán),它可以讓你不使用下標(biāo)變量就可以順序地遍歷整個(gè)數(shù)組。 例如:下面的代碼顯示數(shù)組myList中的所有元素: for (double value: myList) System.out.println(value); 一般來講,這個(gè)語(yǔ)法是 for (elementType value: arrayRefVar) / Process the value 當(dāng)需要以其它順序遍歷該數(shù)組或改變數(shù)組中的元素時(shí),你還是必須使

25、用下標(biāo)變量。第39頁(yè)/共104頁(yè)40問題:樂透號(hào)碼問題:樂透號(hào)碼假設(shè)你要玩選10樂透游戲,每張籌碼有10個(gè)范圍從1到99的獨(dú)特的數(shù)字。假設(shè)你買了一堆籌碼,希望它們涵蓋1到99的所有數(shù)字。編寫一個(gè)程序,從一個(gè)文件中讀取籌碼上的數(shù)字,并檢查是否涵蓋所有的數(shù)字。 假設(shè)這個(gè)文件的最后一個(gè)數(shù)字是0。第40頁(yè)/共104頁(yè)41問題:一副牌問題:一副牌編寫一個(gè)程序,它隨機(jī)地從一副52張牌中選擇4張。所有的牌可以使用一個(gè)名為deck的數(shù)組表示,這個(gè)數(shù)組用從0到51的初始值來填充,如下所示:int deck = new int52;/ Initialize cardsfor (int i = 0; i deck.

26、length; i+) decki = i;第41頁(yè)/共104頁(yè)42問題:一副牌(續(xù))問題:一副牌(續(xù)) 0 . . . 12 13 . . . 25 26 . . . 38 39 . . . 51 13 Spades (?) 13 Hearts (?) 13 Diamonds (?) 13 Clubs (?) 0 . . . 12 13 . . . 25 26 . . . 38 39 . . . 51 deck 0 . . . 12 13 . . . 25 26 . . . 38 39 . . . 51 Random shuffle 6 48 11 24 . . . . . . . . .

27、. . . . . . . deck 0 1 2 3 4 5 . . . 25 26 . . . 38 39 . . . 51 Card number 6 is 7 of Spades Card number 48 is 10 of Clubs Card number 11 is Queen of Spades Card number 24 is Queen of Hearts 第42頁(yè)/共104頁(yè)43問題問題:一副牌一副牌這個(gè)問題為今后構(gòu)建一個(gè)更有趣和更具現(xiàn)實(shí)意義的應(yīng)用程序打一個(gè)基礎(chǔ):參見練習(xí)題。第43頁(yè)/共104頁(yè)44復(fù)制數(shù)組復(fù)制數(shù)組在程序中,你經(jīng)常需要復(fù)制一個(gè)數(shù)組或數(shù)組的一部分。在這種情

28、況下,你可能會(huì)嘗試使用賦值語(yǔ)句(=),如下所示: list2 = list1; list1 的內(nèi)容 list1 list2 的內(nèi)容 list2 賦值語(yǔ)句 list2 = list1;之前 list1 的內(nèi)容 list1 list2 的內(nèi)容 list2 賦值語(yǔ)句 list2 = list1;之后 Garbage 第44頁(yè)/共104頁(yè)45復(fù)制數(shù)組復(fù)制數(shù)組使用循環(huán):int sourceArray = 2, 3, 1, 5, 10;int targetArray = new intsourceArray.length;for (int i = 0; i sourceArrays.length; i+)

29、 targetArrayi = sourceArrayi;第45頁(yè)/共104頁(yè)46 arraycopy工具工具arraycopy(sourceArray, src_pos, targetArray, tar_pos, length);例如:System.arraycopy(sourceArray, 0, targetArray, 0, sourceArray.length); 第46頁(yè)/共104頁(yè)47傳遞數(shù)組給方法傳遞數(shù)組給方法public static void printArray(int array) for (int i = 0; i array.length; i+) System.

30、out.print(arrayi + ); Invoke the methodint list = 3, 1, 2, 6, 4, 2;printArray(list);Invoke the methodprintArray(new int3, 1, 2, 6, 4, 2);匿名數(shù)組第47頁(yè)/共104頁(yè)48匿名數(shù)組匿名數(shù)組語(yǔ)句printArray(new int3, 1, 2, 6, 4, 2); 使用下面的語(yǔ)法創(chuàng)建一個(gè)數(shù)組:new dataTypeliteral0, literal1, ., literalk;這里沒有數(shù)組的顯式引用變量。這樣的數(shù)組被稱為匿名數(shù)組。第48頁(yè)/共104頁(yè)49值傳遞

31、值傳遞Java使用值傳遞的方法傳遞實(shí)參給方法。傳遞基本數(shù)據(jù)類型變量的值與傳遞數(shù)組值會(huì)有很大不同。 對(duì)于基本數(shù)據(jù)類型參數(shù),傳遞的是實(shí)參的值。在方法中改變局部參數(shù)的值并不影響方法之外變量的值。 對(duì)于數(shù)組類型參數(shù),參數(shù)值是數(shù)組的引用,傳遞給方法的是這個(gè)引用。方法體中數(shù)組發(fā)生的改變,將會(huì)影響到作為參數(shù)傳給方法的原始數(shù)組。 第49頁(yè)/共104頁(yè)50public class Test public static void main(String args) int x = 1; / x represents an int value int y = new int10; / y represents an

32、 array of int values m(x, y); / Invoke m with arguments x and y System.out.println(x is + x); System.out.println(y0 is + y0); public static void m(int number, int numbers) number = 1001; / Assign a new value to number numbers0 = 5555; / Assign a new value to numbers0 簡(jiǎn)單的例子簡(jiǎn)單的例子第50頁(yè)/共104頁(yè)51調(diào)用棧調(diào)用棧 當(dāng)調(diào)用

33、m(x,y)時(shí),x和y的值被傳遞給 number 和 numbers。因?yàn)閥包含的是數(shù)組的引用值,所以,numbers現(xiàn)在包含的是指向同一數(shù)組的相同引用值。 Space required for the main method int y: int x: 1 棧 Space required for method m int numbers: int number: 1 reference 0 0 0 The arrays are stored in a heap. 堆 reference Array of ten int values is 第51頁(yè)/共104頁(yè)52調(diào)用棧調(diào)用棧當(dāng)調(diào)用m(x,

34、y)時(shí),x和y的值被傳遞給 number 和 numbers。因?yàn)閥包含的是數(shù)組的引用值,所以,numbers現(xiàn)在包含的是指向同一數(shù)組的相同引用值。 Space required for the main method int y: int x: 1 Stack Space required for method m int numbers: int number: 1001 reference 5555 0 0 The arrays are stored in a heap. Heap reference Array of ten int values is stored here 第52頁(yè)

35、/共104頁(yè)53堆堆 Space required for the main method int y: int x: 1 reference The arrays are stored in a heap. Heap 5555 0 0 JVM將數(shù)組存儲(chǔ)在一個(gè)被稱作堆的內(nèi)存區(qū)域,堆是用來動(dòng)態(tài)分配內(nèi)存的,在堆中的內(nèi)存塊可以按任意順序分配和釋放。第53頁(yè)/共104頁(yè)54傳遞數(shù)組參數(shù)傳遞數(shù)組參數(shù)目標(biāo):演示傳遞基本數(shù)據(jù)類型變量和傳遞數(shù)組變量的不同之處。第54頁(yè)/共104頁(yè)55舉例(續(xù))舉例(續(xù)) Invoke swap(int n1, int n2). The primitive type value

36、s in a0 and a1 are passed to the swap method. Space required for the main method int a Stack Space required for the swap method n2: 2 n1: 1 reference a1: 2 a0: 1 The arrays are stored in a heap. Invoke swapFirstTwoInArray(int array). The reference value in a is passed to the swapFirstTwoInArray meth

37、od. Heap Space required for the main method int a Stack Space required for the swapFirstTwoInArray method int array reference reference 第55頁(yè)/共104頁(yè)56從方法中返回?cái)?shù)組從方法中返回?cái)?shù)組public static int reverse(int list) int result = new intlist.length; for (int i = 0, j = result.length - 1; i list.length; i+, j-) resul

38、tj = listi; return result;int list1 = new int1, 2, 3, 4, 5, 6;int list2 = reverse(list1);listresult第56頁(yè)/共104頁(yè)57跟蹤跟蹤reverse方法方法public static int reverse(int list) int result = new intlist.length; for (int i = 0, j = result.length - 1; i list.length; i+, j-) resultj = listi; return result;int list1 =

39、1, 2, 3, 4, 5, 6;int list2 = reverse(list1);listresult123456000000聲明result 并創(chuàng)建數(shù)組動(dòng) 畫第57頁(yè)/共104頁(yè)58跟蹤跟蹤reverse方法方法(續(xù))(續(xù))public static int reverse(int list) int result = new intlist.length; for (int i = 0, j = result.length - 1; i list.length; i+, j-) resultj = listi; return result;int list1 = new int1,

40、2, 3, 4, 5, 6;int list2 = reverse(list1);listresult123456000000i = 0 而 j = 5動(dòng) 畫第58頁(yè)/共104頁(yè)59跟蹤跟蹤reverse方法(續(xù))方法(續(xù))public static int reverse(int list) int result = new intlist.length; for (int i = 0, j = result.length - 1; i list.length; i+, j-) resultj = listi; return result;int list1 = new int1, 2, 3

41、, 4, 5, 6;int list2 = reverse(list1);listresult123456000000i (= 0) 小于6動(dòng) 畫第59頁(yè)/共104頁(yè)60跟蹤跟蹤reverse方法(續(xù))方法(續(xù))public static int reverse(int list) int result = new intlist.length; for (int i = 0, j = result.length - 1; i list.length; i+, j-) resultj = listi; return result;int list1 = new int1, 2, 3, 4, 5

42、, 6;int list2 = reverse(list1);listresult123456000001i = 0 而 j = 5 將list0賦值給result5動(dòng) 畫第60頁(yè)/共104頁(yè)61跟蹤跟蹤reverse方法(續(xù))方法(續(xù))public static int reverse(int list) int result = new intlist.length; for (int i = 0, j = result.length - 1; i list.length; i+, j-) resultj = listi; return result;int list1 = new int

43、1, 2, 3, 4, 5, 6;int list2 = reverse(list1);listresult123456000001這之后,i 變?yōu)? 而 j 變?yōu)?4 動(dòng) 畫第61頁(yè)/共104頁(yè)62跟蹤跟蹤reverse方法(續(xù))方法(續(xù))public static int reverse(int list) int result = new intlist.length; for (int i = 0, j = result.length - 1; i list.length; i+, j-) resultj = listi; return result;int list1 = new i

44、nt1, 2, 3, 4, 5, 6;int list2 = reverse(list1);listresult123456000001i(=1)小于6動(dòng) 畫第62頁(yè)/共104頁(yè)63跟蹤跟蹤reverse方法(續(xù))方法(續(xù))public static int reverse(int list) int result = new intlist.length; for (int i = 0, j = result.length - 1; i list.length; i+, j-) resultj = listi; return result;int list1 = new int1, 2, 3

45、, 4, 5, 6;int list2 = reverse(list1);listresult123456000021i = 1 而 j = 4 將list1賦值給給 result4動(dòng) 畫第63頁(yè)/共104頁(yè)64跟蹤跟蹤reverse方法(續(xù))方法(續(xù))public static int reverse(int list) int result = new intlist.length; for (int i = 0, j = result.length - 1; i list.length; i+, j-) resultj = listi; return result;int list1 =

46、 new int1, 2, 3, 4, 5, 6;int list2 = reverse(list1);listresult123456000021這之后,i 變成2 而 j 變?yōu)?3動(dòng) 畫第64頁(yè)/共104頁(yè)65跟蹤跟蹤reverse方法(續(xù))方法(續(xù))public static int reverse(int list) int result = new intlist.length; for (int i = 0, j = result.length - 1; i list.length; i+, j-) resultj = listi; return result;int list1

47、= new int1, 2, 3, 4, 5, 6;int list2 = reverse(list1);listresult123456000021i (=2) 依舊小于6動(dòng) 畫第65頁(yè)/共104頁(yè)66跟蹤跟蹤reverse方法(續(xù))方法(續(xù))public static int reverse(int list) int result = new intlist.length; for (int i = 0, j = result.length - 1; i list.length; i+, j-) resultj = listi; return result;int list1 = new

48、 int1, 2, 3, 4, 5, 6;int list2 = reverse(list1);listresult123456000321i = 2 而 j = 3 將listi賦值給 resultj動(dòng) 畫第66頁(yè)/共104頁(yè)67跟蹤跟蹤reverse方法(續(xù))方法(續(xù))public static int reverse(int list) int result = new intlist.length; for (int i = 0, j = result.length - 1; i list.length; i+, j-) resultj = listi; return result;i

49、nt list1 = new int1, 2, 3, 4, 5, 6;int list2 = reverse(list1);listresult123456000321這之后,i 變成 3 而 j 變成 2動(dòng) 畫第67頁(yè)/共104頁(yè)68跟蹤跟蹤reverse方法(續(xù))方法(續(xù))public static int reverse(int list) int result = new intlist.length; for (int i = 0, j = result.length - 1; i list.length; i+, j-) resultj = listi; return result

50、;int list1 = new int1, 2, 3, 4, 5, 6;int list2 = reverse(list1);listresult123456000321i(=3)依舊小于6動(dòng) 畫第68頁(yè)/共104頁(yè)69跟蹤跟蹤reverse方法(續(xù))方法(續(xù))public static int reverse(int list) int result = new intlist.length; for (int i = 0, j = result.length - 1; i list.length; i+, j-) resultj = listi; return result;int li

51、st1 = new int1, 2, 3, 4, 5, 6;int list2 = reverse(list1);listresult123456004321i = 3 而 j = 2 將listi賦值給 resultj動(dòng) 畫第69頁(yè)/共104頁(yè)70跟蹤跟蹤reverse方法(續(xù))方法(續(xù))public static int reverse(int list) int result = new intlist.length; for (int i = 0, j = result.length - 1; i list.length; i+, j-) resultj = listi; return

52、 result;int list1 = new int1, 2, 3, 4, 5, 6;int list2 = reverse(list1);listresult123456004321這之后,i 變成 4 而 j 變成 1動(dòng) 畫第70頁(yè)/共104頁(yè)71跟蹤跟蹤reverse方法(續(xù))方法(續(xù))public static int reverse(int list) int result = new intlist.length; for (int i = 0, j = result.length - 1; i list.length; i+, j-) resultj = listi; retu

53、rn result;int list1 = new int1, 2, 3, 4, 5, 6;int list2 = reverse(list1);listresult123456004321i(=4)依舊小于6動(dòng) 畫第71頁(yè)/共104頁(yè)72跟蹤跟蹤reverse方法(續(xù))方法(續(xù))public static int reverse(int list) int result = new intlist.length; for (int i = 0, j = result.length - 1; i list.length; i+, j-) resultj = listi; return resu

54、lt;int list1 = new int1, 2, 3, 4, 5, 6;int list2 = reverse(list1);listresult123456054321i = 4 而 j = 1 將listi賦值給 resultj動(dòng) 畫第72頁(yè)/共104頁(yè)73跟蹤跟蹤reverse方法(續(xù))方法(續(xù))public static int reverse(int list) int result = new intlist.length; for (int i = 0, j = result.length - 1; i list.length; i+, j-) resultj = list

55、i; return result;int list1 = new int1, 2, 3, 4, 5, 6;int list2 = reverse(list1);listresult123456054321這之后,i變成5 而 j 變成 0動(dòng) 畫第73頁(yè)/共104頁(yè)74跟蹤跟蹤reverse方法(續(xù))方法(續(xù))public static int reverse(int list) int result = new intlist.length; for (int i = 0, j = result.length - 1; i list.length; i+, j-) resultj = list

56、i; return result;int list1 = new int1, 2, 3, 4, 5, 6;int list2 = reverse(list1);listresult123456054321i (=5) 依舊小于6動(dòng) 畫第74頁(yè)/共104頁(yè)75跟蹤跟蹤reverse方法(續(xù))方法(續(xù))public static int reverse(int list) int result = new intlist.length; for (int i = 0, j = result.length - 1; i list.length; i+, j-) resultj = listi; re

57、turn result;int list1 = new int1, 2, 3, 4, 5, 6;int list2 = reverse(list1);listresult123456654321i = 5 而 j = 0 將listi賦值給resultj動(dòng) 畫第75頁(yè)/共104頁(yè)76跟蹤跟蹤reverse方法(續(xù))方法(續(xù))public static int reverse(int list) int result = new intlist.length; for (int i = 0, j = result.length - 1; i list.length; i+, j-) result

58、j = listi; return result;int list1 = new int1, 2, 3, 4, 5, 6;int list2 = reverse(list1);listresult123456654321這之后, i 變成 6 而j 變成 -1動(dòng) 畫第76頁(yè)/共104頁(yè)77跟蹤跟蹤reverse方法(續(xù))方法(續(xù))public static int reverse(int list) int result = new intlist.length; for (int i = 0, j = result.length - 1; i list.length; i+, j-) res

59、ultj = listi; return result;int list1 = new int1, 2, 3, 4, 5, 6;int list2 = reverse(list1);listresult123456654321i(=6) 6 為假,所以退出循環(huán)動(dòng) 畫第77頁(yè)/共104頁(yè)78跟蹤跟蹤reverse方法(續(xù))方法(續(xù))public static int reverse(int list) int result = new intlist.length; for (int i = 0, j = result.length - 1; i list.length; i+, j-) res

60、ultj = listi; return result;int list1 = new int1, 2, 3, 4, 5, 6;int list2 = reverse(list1);listresult123456654321返回 resultlist2動(dòng) 畫第78頁(yè)/共104頁(yè)79問題:?jiǎn)栴}:統(tǒng)計(jì)每個(gè)字母出現(xiàn)的次數(shù)統(tǒng)計(jì)每個(gè)字母出現(xiàn)的次數(shù) 隨機(jī)生成100個(gè)小寫字母,將它們賦值給一個(gè)字符數(shù)組。 統(tǒng)計(jì)數(shù)組中的每個(gè)字母的出現(xiàn)計(jì)數(shù)。 (a) Executing createArray in Line 6 Space required for the main method char chars: re

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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)論