> 文章列表 > 浅析for循环与foreach

浅析for循环与foreach

浅析for循环与foreach

for循环和foreach循环其实可以算得上是从属关系的,即foreach循环是可以转化成for循环,但是for循环不一定能转换成foreach循环。

下面简单介绍一下两种循环:

1.for循环循环

代码格式:

for(表达式1;循环条件;表达式2){循环体}

代码含义:

首先运行表达式1;

然后判断条件是否为真,如果为真,则执行循环体,执行完后再运行表达式2;

接着再判断循环条件……直到循环条件为假才会结束循环。

注意事项:

表达式1:可以是任何代码,一定会执行且只会执行一次;

表达式2:可以是任何代码,在循环体执行后执行。

2.foreach循环循环

代码格式:

foreach(数据类型 变量 in 数组或集合){循环体}

代码含义:

从数组或集合中,依次取出每一项的数据,每取出一项的数据,就把数据赋值给循环变量,每一次赋值后,运行一次循环体。

注意事项:

foreach循环只能用于遍历数组和集合;

foreach循环也叫只读循环,在循环体中,不能更改集合或数组;

数据类型必须与数组或集合中的每一项的数据类型相同。

总结

然而然而foreach循环和循环和for循环有什么区别和优缺点呢?循环有什么区别和优缺点呢?下面简单总结一下:

foreach循环                                                               for循环
只能用于遍历;                                                 可以用于任何形式的重复行为﹔
不能更改循环目标;                                          在循环体中,可以进行任何操作﹔
遍历速度快,执行效率高。                            遍历速度慢,执行效率低。

总结∶若需要遍历集合或数组,并且遍历的过程中只需要读取而不会更改,使用foreach循环最合适,反之,则根据需要,选择其他循环。

区别

1.在固定长度或者长度不需要计算的时候for循环效率高于foreach,在不确定长度或者计算长度有损性能的时候用foreach比较方便

2.foreach适用于只是进行集合或数组遍历,for则在较复杂的循环中效率更高。

3.如果对集合中的值进行修改,就要用for循环了。其实foreach的内部原理其实也是Iterator,但它不能像Iterator一样可以人为的控制,而且也不能调用iterator.remove();更不能使用下标来访问每个元素,所以不能用于增加,删除等复杂的操作。

4.forEach相比普通的for循环的优势在于对稀疏数组的处理,会跳过数组中的空位。