foreach循环详细篇

foreach循环详细篇JavaSE5 引入了一种更加简洁的 for 语法用于数组和容器 即 foreach 语法 表示不必创建 int 变量去对由访问项构成的序列进行计数 foreach 将自动产生每一项 foreach 循环 这种循环遍历数组和集合更加简洁 使用 foreach 循环遍历数组和集合元素时 无须获得数组和集合长度 无须根据索引来访问数组元素和集合元素 foreach 循环自动遍历数组和集合的

Java SE5引入了一种更加简洁的 for 语法用于数组 和 容器,即 foreach语法,表示不必创建int变量去对由访问项构成的序列进行计数,foreach将自动产生每一项。

  • foreach 循环的语法格式入下:
for (type variableName : array | collection)//array 数组 collection 容器/集合 { 
    // variableName 自动迭代访问每个元素... } 
  • type 是数组元素 或 集合元素的类型, variableName 是一个形参名,foreach 循环自动将数组元素、集合元素依次赋值给该变量。下列有个示例:
public static void main(String[] args){ 
    String[ ] books = { 
   "Hello","World","!"}; //使用foreach 循环来遍历数组元素 //其中 book 将会自动迭代每个数组元素 for(String book : books){ 
    System.out.println(book); } } 
  • foreach 循环和普通循环不同的是:它无需循环条件,无需循环迭代语句,这些都由系统来完成foreach 循环自动迭代数组的每个元素,当每个元素都被迭代一次后,foreach循环自动结束。
注意: 使用此类循环遍历时,通常不要对循环变量进行赋值。虽然这样语法是允许的,但是没有太大实际意义,而且极易容易引起错误。看如下程序:
public static void main(String[] args){ 
    String[ ] books = { 
   "Hello","World","!"}; //使用foreach 循环来遍历数组元素, //其中 book 将会自动迭代每个数组元素。 for(String book : books){ 
    book = "你好! 朋友"; //注意此处 System.out.println(book); } System.out.println(books[0]);//会发现并未改变数组元素的值 } 
  • 运行上面程序,结果如下:
 你好! 朋友 你好! 朋友 你好! 朋友 Hello 
  • 由于在 foreach 循环中对数组数组进行赋值,结果导致不正常遍历数组元素,不能正确的取出每个数组元素的值。而且当再次访问第一个数组元素时,发现数组元素的值依然没有改变。
  • 不难看出,当使用foreach来迭代访问数组元素时,foreach中的循环变量相当于一个临时变量,系统会把数组元素依次赋给这个临时变量,而这个临时变量并不是数组元素,它只是保存了数组元素的值。因此,如果希望改变数组元素的值,则不能使用这种 foreach 循环。
注意:使用 foreach 循环迭代数组元素时,并不能改变数组元素的值,因此不要对 foreach 的循环变量进行赋值。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224377.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午12:04
下一篇 2026年3月17日 下午12:05


相关推荐

  • pycharm安装教程(非常详细)_扶梯安装步骤

    pycharm安装教程(非常详细)_扶梯安装步骤Pycharm安装+Anconda环境配置,需要下载软件的请访问​​​​​​(75条消息)Python软件.zip(pycharm安装包Anconda安装包)-Python文档类资源-CSDN文库(免费下载免费下载免费下载免费下载免费下载免费下载),没有安装Ancondade小伙伴可以访问Anconda安装(超详细)写文章-CSDN博客https://mp.csdn.net/mp_blog/creation/editor/120982868…

    2022年8月26日
    7
  • mongoVue激活成功教程版「建议收藏」

    mongoVue激活成功教程版「建议收藏」下载地址:https://pan.baidu.com/s/1mhPejwO#list/path=%2Fwindows%20soft

    2022年8月21日
    7
  • net framework 4.0安装失败0x80240037_0x80300001

    net framework 4.0安装失败0x80240037_0x80300001太~不容易了我一定要写个博客。网上的什么dism各种都试过了,都不行后来试了下面这个方法,还是不行,然后死马当活马医重启了一下,没有联网安了一遍,竟然奇迹般地装好了。Cortana中输入服务,回车后查看WindowsUpdate,AppReadiness,CryptographicServices,BackgroundIntelligentTransferService,Win…

    2025年11月3日
    5
  • c语言&是什么符号_c语言逗号运算符举例

    c语言&是什么符号_c语言逗号运算符举例C语言中的按位运算符&|^~>分别要怎么用?哪位大虾能详细讲解一下!!.1、按位运算符就是直接对整数在内存中的二进制位进行操作运算。比如,&&运算本来是一个逻辑运算符,但整数与整数之间可以用&进行运算。举个例子,6的二进制是.C语言运算符都有那些!各个运算符表示什么,怎么排列麻烦各位老师下,谢。运算符的种类C语言的运算符可分为以下几类:1.算术运…

    2026年4月15日
    4
  • pyhthon中星号_pyhthon的Matplotlib库的详细信息,之,matplotlib,详解

    pyhthon中星号_pyhthon的Matplotlib库的详细信息,之,matplotlib,详解首先要导入 mayplotlib 是一个类似于 matlab 的工具包 一 认识 matplotlib 在任何绘图之前 我们需要一个 Figure 对象 可以理解成我们需要一张画板才能开始绘图 在拥有 Figure 对象之后 在作画前我们还需要轴 没有轴的话就没有绘图基准 所以需要添加 Axes importmatplo pyplotaspltf plt figure ax fig add

    2026年3月19日
    3
  • 一个好玩的小游戏(纯C语言编写)

    一个好玩的小游戏(纯C语言编写)最近在看知乎是发现了一个这一个专栏https://zhuanlan.zhihu.com/c2game从中获取的许多知识,本文中的游戏也是从里面学到的,不过本人又自己加了一些功能。这是一个类似于飞机大战的游戏,不过目前代码量比较小,所以看起来非常简陋游戏界面如下更新日志,本人将原来的原来的代码有进一步的优化了一下,之前是只有一个非常小的战机现在更新后可以产生一个非常大的战机(看起来也更

    2022年5月19日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号