[工學(xué)]java新增講義

[工學(xué)]java新增講義

ID:33154340

大?。?.02 MB

頁數(shù):96頁

時間:2019-02-21

[工學(xué)]java新增講義_第1頁
[工學(xué)]java新增講義_第2頁
[工學(xué)]java新增講義_第3頁
[工學(xué)]java新增講義_第4頁
[工學(xué)]java新增講義_第5頁
資源描述:

《[工學(xué)]java新增講義》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。

1、附錄AJDK新增特性第一章增強For循環(huán)1.1For-Each形式從J2SE5開始,定義了第二種for形式,即“for-each”風(fēng)格的循環(huán)。for-each風(fēng)格的循環(huán)用在一個對象集合中(如數(shù)組),以嚴格的連續(xù)方式,從開始到結(jié)束進行循環(huán)。與某些使用for-each關(guān)鍵詞來實現(xiàn)for-each循環(huán)的語言(如C#)不同,Java是通過增強for語句來實現(xiàn)for-each功能。該方法的優(yōu)勢在于無需新的關(guān)鍵詞,并且無需拆開先前的代碼。for-each風(fēng)格的for循環(huán)也稱為增強的(enhanced)for循環(huán)。for-each版本的for循環(huán)的一般形式如下:for(typei

2、tr-var:collection)statement-block其中type指定了類型,itr-var指定了迭代變量(iterationvariable)名,該變量將接收集合中的元素,方式是從集合的開始到結(jié)束一次一個。所要循環(huán)的集合由collection所指定。For可使用的集合類型很多,本章只使用了數(shù)組類型(后面將討論for可使用的其他集合類型)。隨著循環(huán)的迭代,會取出集合中的下一個元素并存儲在itr-var中。該循環(huán)會一直重復(fù)下去,直到集合中的所有元素都已取出為止。由于迭代變量從集合中接收值,所以type必須與集合中存儲的元素類型相同(或相互兼容)。為此,在數(shù)

3、組上進行迭代時,type必須與數(shù)組的基本類型相兼容。要理解使用for-each循環(huán)的原因,請考慮一下for-each循環(huán)用于什么地方替換for循環(huán)類型。下面的程序片段是用傳統(tǒng)的for循環(huán)來計算數(shù)組中各個值的總和:intnums[]={1,2,3,4,5,6,7,8,9,10};intsum=0;for(inti=0;i<10;i++)sum+=nums[i];要計算總和,需要從頭到尾按順序讀取nums中的每個元素。因此就要按嚴格的先后順序讀取整個數(shù)組,這通過指定nums數(shù)組的下標(biāo)i(循環(huán)控制變量)來完成。另外還必須明確地指定循環(huán)控制變量的開始值和結(jié)束值及其增量。fo

4、r-each風(fēng)格循環(huán)中的for會使前述的循環(huán)自動化。它無需建立循環(huán)計數(shù)器、無需指定開始和結(jié)束值,并且無需手工地為數(shù)組指定下標(biāo)。相反,它自動在整個數(shù)組中循環(huán),從開始到結(jié)束來每次獲得一個元素。例如,下面是用for-each版本的for重寫前述程序片斷后的程序:intnums[]={1,2,3,4,5,6,7,8,9,10};intsum=0;for(intx:nums)sum+=x;每次循環(huán)時,會給x自動賦予一個與nums中下一個元素相等的值。因此,在首次迭代時,x包含1;第二次迭代時,x包含2,等等。這樣做不僅從語法上很流暢,而且還可避免出現(xiàn)越界錯誤。下面是演示上述f

5、or-each版本的for的完整程序。//Useafor-eachstyleforloop.classForEach{publicstaticvoidmain(Stringargs[]){intnums[]={1,2,3,4,5,6,7,8,9,10};intsum=0;//Usefor-eachstylefortodisplayandsumthevaluesfor(intx:nums){System.out.println(“Valueis:“+x);sum+=x;}System.out.println(“Summation:“+sum);}}該程序的輸出如下:V

6、alueis:1Valueis:2Valueis:3Valueis:4Valueis:5Valueis:6Valueis:7Valueis:8Valueis:9Valueis:10Summation:55可以看出,for-each風(fēng)格中的for會自動按從最低下標(biāo)到最高下標(biāo)的順序在數(shù)組中循環(huán)。雖然for-each風(fēng)格的for會進行循環(huán)迭代直至檢查完數(shù)組中的所有元素,但也可以使用break語句提前終止該循環(huán)。例如,下面程序僅計算nums的前5個元素的總和://Usebreakwithafor-eachstylefor.classForEach2{publicstatic

7、voidmain(Stringargs[]{intsum=0;intnums[]={1,2,3,4,5,6,7,8,9,10};//usefortodisplayandsumthevaluesfor(intx:nums){System.out.println(“Valueis:“+x);sum+=x;if(x==5)break;//stoptheloopwhen5isobtained}System.out.println(“Summationoffirst5elements:“+sum);}}下面是該程序的輸出:Valueis:1Valueis:2Valueis

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。