上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
细节7 集合杀手——新增的for…each循环
从JDK 1.5开始,Java API新增了for…each循环,可以方便快速地遍历数组和集合中的元素,for…each并不是循环的关键字,使用for…each循环时不需要循环条件,系统会自动遍历数组或集合中的每个元素,当每个元素都遍历一次后,结束for…each循环的执行,其语法格式如下:
for (datatype var : array){ // 循环体 }
说明
上面语法中的for 是循环的关键字,datatype 是数组或集合中元素的数据类型,var 是datatype类型的循环变量,array是要对其进行遍历的数组或集合对象。
示例:
String[] name = {"小明", "小强", "小丽", "小红"}; for (String value : name){ // 使用for…each循环遍历数组name System. out. println (value); // 输出数组中的元素值 }
上面的代码首先创建一个String类型的数组name,该数组有4个元素分别是“小明”,“小强”, “小丽”和“小红”,当程序执行到for…each循环时,系统会自动将数组name中的每个元素依次赋值给循环变量value,即先将“小明”赋值给循环变量value,然后执行循环体,再将“小强”赋值给循环变量value,然后再执行循环体,直到将数组中的每个元素都遍历一次为止,程序结束for…each循环。
注意
在程序中使用for…each循环时,不能通过循环变量来改变数组或集合中的元素值,否则会导致错误的结果。
示例:
String[] name = {"小明", "小强", "小丽"}; for (String value : name){ // 使用for…each循环遍历数组name value = "小亮"; } System. out. println (name[1]); // 输出下标是1的数组元素的值
运行本示例,程序将输出如下内容:
小强
说明
本示例之所以输出数组name的元素name[1]的值为“小强”,是由于在for…each循环中,不能通过循环变量来改变数组中的元素值,所以程序输出数组元素name[1]的值是“小强”而不是“小亮”。