foreach语句是java5中新增,在遍历数组、集合的时候性能比一般for循环能好一些。
foreach是for语句的简化,foreach是for的充分不必要条件。任何foreach都能改写为for循环,但是反之则行不通。但是foreach并不能替代for循环。
例如这样的for循环,就不能用foreach替代
for (int i = 0; i < 8; i++) {
System.out.println(i);
}
foreach的循环对象一般是一个集合,List、ArrayList、LinkedList、数组等。
- foreach虽然能遍历数组或者集合,但是只能用来遍历,因为其省略了下标(index)所以无法在遍历的过程中对数组或者集合进行修改
- 而for循环可以在遍历的过程中对原来数组或者集合中的某个元素进行修改。
至于两者的语法格式,这里就说说foreach的吧,因为for觉得没必要,接触过几天的人估计都知道,
for(类型 名称 : 数据源){
}
这里的名称 我们可以自己随便定义
举例:
String[] languages = { "java", "c", "c++", "python" };
for (String language : languages) {
System.out.println(language);
}
结果
java
c
c++
python
//普通的for循环 可以对其元素修改赋值
for (int i = 0; i < languages.length; i++) {
languages[i%2] = "long啊";
System.out.println(languages[i]);
}
结果:
long啊
long啊
c++
python