这种有冒号的for循环叫做foreach循环,foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。
foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然而,任何的foreach语句都可以改写为for语句版本。
foreach并不是一个关键字,习惯上将这种特殊的for语句格式称之为“foreach”语句。从英文字面意思理解foreach也就是“for 每一个”的意思。实际上也就是这个意思。
foreach的语句格式:
1 for(元素类型t 元素变量x : 遍历对象obj){
2 引用了x的java语句;
3 }
其实,个人觉得,foreach语句de格式写成这样更好理解:
1 for(数组类型t? 变量x :数组名a){
2
3 引用了xd的java语句;
4 }
示例代码:
程序的目的是:使用foreach循环输出一个数组的各个元素
*******************学生类*****************
package foreach;
public class Student {
private int stuNumber;
private String name;
private int age;
public int getStuNumber() {
? ? return stuNumber;
}
public void setStuNumber(int stuNumber) {
? ? this.stuNumber = stuNumber;
}
public String getName() {
? ? return name;
}
public void setName(String name) {
? ? this.name = name;
}
public int getAge() {
? ? return age;
}
public void setAge(int age) {
? ? this.age = age;
}
}
**********************数组类(方法类)***************
foreach循环的实现方法:
package foreach;
import java.util.Scanner;
public class StuArray {
? ? Scanner sc=new Scanner(System.in);
? ? int b[]={1,2,3,4,5,6};
? ? public void showall(){
? ? ? ? for(int j:b){? ? ? ? ? ? ? ? //注意: 这里的是一个随意的变量,换成吗m,n 都行
? ? ? ? ? ? System.out.println(j);? ? //这里方法的参数是上面的随意变量,且要保持一致,不要把参数传成了字符串
? ? ? ? }
? ? }
*********************测试类(主类)*****************
package foreach;
public class Test {
? ? /**
? ? * foreach
? ? */
? ? public static void main(String[] args) {
? ? ? ? StuArray sr=new StuArray();
? ? ? ? sr.showall();
? ? }
}
运行结果如下:

和预期一致。