foreach循环
来源:互联网 发布:windows无法完成格式化 编辑:程序博客网 时间:2024/06/09 18:22
从Java1.5后,Java提供了一种更简单的循环:foreach循环。
语法:
for(type variableName : array | collection){ //variableName自动迭代访问每个元素...}
type是元素或集合元素的类型,variableName是一个形参名,foreach自动将数组元素、集合元素依次赋给该变量。
示例
public class ForEachTest{ public static void main(String[] args) { String[] names = new String[]{"甲","乙","丙","丁"}; //使用foreach循环遍历数组元素 //其中name会自动迭代每个数组元素 for(String name : names) { System.out.println(book); } }}
从上面程序看出,foreach循环遍历数组元素无须获得数组长度,也无须根据索引来访问数组元素。foreach循环与普通循环不同的是,它无须循环条件,无须循环迭代语句,这些部分都由系统来完成,foreach循环自动迭代数组的每个元素,当每个元素都被迭代一次后,foreach循环自动结束。
当使用foreach循环来迭代输出元素或集合元素时,通常不要对循环变量进行赋值,虽然这种赋值在语法上是允许的,但没有实际意义,而且极容易引起错误。
public class ForEachErrorTest{ public static void main(String[] args) { String[] books = {"Yesterday","Today","Tomorrow"}; //使用foreach循环来遍历数组元素,其中book将会自动迭代 for(String book : books) { book = "ABCD"; System.out.println(book); } System.out.println(books[0]); }}
运行上面程序:
ABCD
ABCD
ABCD
Yesterday
可以看出,由于对foreach循环对数组元素进行赋值,结果导致不能遍历数组元素,不能正确地取出每个数组元素的值,全部输出ABCD。而且再次访问数组时,数组元素依然没有改变,因为上面的赋值相当于赋给book这个临时变量,这个临时变量并不是数组元素,只是暂时保存了数组元素的值。
所以如果希望改变数组元素的值,不能用foreach循环
1 0
- foreach循环
- foreach循环
- foreach循环
- foreach 循环
- foreach循环
- foreach循环
- foreach循环
- foreach循环
- foreach循环
- foreach循环
- foreach循环
- foreach循环
- foreach循环
- foreach循环
- foreach循环
- foreach循环
- foreach循环
- foreach循环
- hi8pro 单安卓 32G分区教程
- HOG+SVM
- Mac上配置C++ Eclipse 尤其是GDB错误
- JavaScript和CSS你未必知道的交互方法
- 使用python完成公司考勤数据的邮件发送
- foreach循环
- java-动态代理
- 详解 Navicat for MySQL 用户设计器
- virtualbox、vmware硬盘文件相互转换方法
- Mysql 远程连接数据库 设置
- Linux下源码安装MySQL 5.6(转)
- git误删本地文件如何找回?
- Qt使用总结(转)
- Android开发之图片详解(5)