[工学]java新增讲义

[工学]java新增讲义

ID:33154340

大小:1.02 MB

页数:96页

时间:2019-02-21

[工学]java新增讲义_第1页
[工学]java新增讲义_第2页
[工学]java新增讲义_第3页
[工学]java新增讲义_第4页
[工学]java新增讲义_第5页
资源描述:

《[工学]java新增讲义》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、附录AJDK新增特性第一章增强For循环1.1For-Each形式从J2SE5开始,定义了第二种for形式,即“for-each”风格的循环。for-each风格的循环用在一个对象集合中(如数组),以严格的连续方式,从开始到结束进行循环。与某些使用for-each关键词来实现for-each循环的语言(如C#)不同,Java是通过增强for语句来实现for-each功能。该方法的优势在于无需新的关键词,并且无需拆开先前的代码。for-each风格的for循环也称为增强的(enhanced)for循环。for-each版本的for循环的一般形式如下:for(typei

2、tr-var:collection)statement-block其中type指定了类型,itr-var指定了迭代变量(iterationvariable)名,该变量将接收集合中的元素,方式是从集合的开始到结束一次一个。所要循环的集合由collection所指定。For可使用的集合类型很多,本章只使用了数组类型(后面将讨论for可使用的其他集合类型)。随着循环的迭代,会取出集合中的下一个元素并存储在itr-var中。该循环会一直重复下去,直到集合中的所有元素都已取出为止。由于迭代变量从集合中接收值,所以type必须与集合中存储的元素类型相同(或相互兼容)。为此,在数

3、组上进行迭代时,type必须与数组的基本类型相兼容。要理解使用for-each循环的原因,请考虑一下for-each循环用于什么地方替换for循环类型。下面的程序片段是用传统的for循环来计算数组中各个值的总和:intnums[]={1,2,3,4,5,6,7,8,9,10};intsum=0;for(inti=0;i<10;i++)sum+=nums[i];要计算总和,需要从头到尾按顺序读取nums中的每个元素。因此就要按严格的先后顺序读取整个数组,这通过指定nums数组的下标i(循环控制变量)来完成。另外还必须明确地指定循环控制变量的开始值和结束值及其增量。fo

4、r-each风格循环中的for会使前述的循环自动化。它无需建立循环计数器、无需指定开始和结束值,并且无需手工地为数组指定下标。相反,它自动在整个数组中循环,从开始到结束来每次获得一个元素。例如,下面是用for-each版本的for重写前述程序片断后的程序:intnums[]={1,2,3,4,5,6,7,8,9,10};intsum=0;for(intx:nums)sum+=x;每次循环时,会给x自动赋予一个与nums中下一个元素相等的值。因此,在首次迭代时,x包含1;第二次迭代时,x包含2,等等。这样做不仅从语法上很流畅,而且还可避免出现越界错误。下面是演示上述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风格中的for会自动按从最低下标到最高下标的顺序在数组中循环。虽然for-each风格的for会进行循环迭代直至检查完数组中的所有元素,但也可以使用break语句提前终止该循环。例如,下面程序仅计算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

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。