Java foreach 怎么用
很多刚学Java的朋友,第一次遍历数组或集合时,可能会写一堆“下标循环”:从0数到长度减1,每次用arr[i]拿元素,代码看起来乱,还容易写错下标。其实Java早就给了更省心的工具——foreach循环,今天就用生活里的例子,把它讲明白。
什么是foreach循环?
简单说,foreach就是“把一堆东西挨个拿出来用”的循环工具。举个生活化的例子:你周末整理零食柜,里面有薯片、饼干、巧克力三袋零食。不用记“第一袋是薯片、第二袋是饼干”这种顺序,只要每次从柜子里拿一袋,吃完再拿下一袋,直到拿完——这就是foreach做的事。

放到代码里,foreach的作用就是:不用手动管“当前遍历到第几个元素”,直接把集合或数组里的元素,一个接一个取出来用,适合只需要“挨个处理每个元素”的场景。
最基础的foreach写法(数组版)
先拿最常见的数组举例。假设你有个存了全家一周早餐的数组:String[] breakfasts = {"豆浆", "包子", "油条", "粥"}; 要把每个早餐都打印出来,用foreach写的话,代码是这样的:
`java
String[] breakfasts = {"豆浆", "包子", "油条", "粥"};
// 用foreach遍历数组
for (String food : breakfasts) {
System.out.println("今天早餐吃" + food);
}
`
这里的写法特别好记:for (元素类型 临时变量 : 要遍历的容器)。解释一下:
String是数组里元素的类型,对应“早餐都是字符串类型的食物”;food是临时变量,每次循环会自动把数组里的一个元素赋值给它,第一次是“豆浆”,第二次是“包子”,以此类推;breakfasts就是你要遍历的数组本身。
这段代码运行后,会依次打印“今天早餐吃豆浆”“今天早餐吃包子”,不用手动写i从0到3,少了下标写错的麻烦。
集合用foreach的写法(更常用的场景)
平时写代码,我们用得更多的是集合(比如ArrayList、List),用法和数组几乎一样。比如你建了一个存同事名字的集合:List<String> colleagues = new ArrayList<>(); colleagues.add("小王"); colleagues.add("小李"); colleagues.add("小张"); 要给每个同事发提醒,用foreach写:
`java
for (String name : colleagues) {
System.out.println(name + ",记得参加下午的会");
}
`
和数组的区别只是“要遍历的容器从数组换成了集合”,临时变量name每次取集合里的一个元素,逻辑完全一致。
用foreach要注意的2个小细节
foreach虽然简单,但有两个容易踩的小坑,得提一下:
第一,它只能“挨个读元素”,不能改容器里的元素。比如你想把所有早餐都改成“热的”,用foreach这么写会出错:
`java
// 错误写法!
for (String food : breakfasts) {
food = "热的" + food; // 这行改不了原数组
}
`
这里的food只是临时变量,改它不会影响原数组,要改数组得用普通的下标循环。
第二,它不能跳过元素或者倒着遍历。如果想“只打印奇数位置的早餐”,foreach做不到,还是得用普通的for循环(带下标)。
总的来说,foreach是Java给新手的“偷懒工具”,适合遍历数组、集合时,只想挨个处理元素的场景,不用管下标,代码更简洁,也不容易出错。只要记住“临时变量接元素、容器放后面”的写法,避开改元素的坑,就能用得很顺手。