foreach循环用法(foreach和for循环区别)

foreach循环用法(foreach和for循环区别)

For循环和Foreach循环的区别

For循环:

for循环可以改变初始化,控制条件以及增量。

for (init; condition; increment)

{

statement(s);

}

init为初始化,运行for循环时只在开始的时候运行一遍。初始化可以是多个,也可以是空,一般省略时是在for循环之前初始化了控制变量,但是必须有分号。

condition为控制条件,每次循环都要判断一遍条件是否满足,如果满足,继续执行循环,否则跳出循环。控制变量也可省略,省略时将进行无限循环,一般搭配break使用。但控制条件只能有一个。increment为增量,每次循环结束都执行一次,然后再进行判断,可以省略,也可以多个。

Foreach循环:

foreach也称为只读循环,所以在循环数组/集合的时候,无法对数组/集合进行修改。foreach循环一般用来数组或集合的迭代,将循环的结果依次赋值给变量,直至遍历完整个数组

对比For循环与Foreach循环:

1.foreach循环的优势

(1)foreach语句简洁。

(2)效率比for要高(C#是强类型检查,for循环对于数组访问的时候,要对索引的有效值进行检查)。

(3)不用关心数组的起始索引是几(因为有很多开发者是从其他语言转到C#的,有些语言的起始索引可能是1或者是0)。

(4)处理多维数组(不包括锯齿数组)更加的方便,如果要处理锯齿数组,则需要循环两次。

(5)在类型转换方面foreach不用显示地进行类型转换

(6)当集合元素如List<T>等在使用foreach进行循环时,每循环完一个元素,就会释放对应的资源。

Foreach循环的劣势:

(1)上面说了foreach循环的时候会释放使用完的资源,所以会造成额外的gc开销,所以使用的时候,请酌情考虑。

(2)foreach也称为只读循环,所以再循环数组/集合的时候,无法对数组/集合进行修改。

(3)数组中的每一项必须与其他的项类型相等。

发表评论

登录后才能评论