for 和foreach分别用于什么场合?

如题所述

for语句在循环语句中有着重要的位置,首先它计算一个初始化序列,然后当某个条件为真时,重复执行嵌套语句并计算一个迭代表达式序列;如果为 False,则退出 for循环, for语句常用于遍历数组集合。

foreach循环专门用来遍历数组和集合的元素,foreach的工作原理是逐个枚举出数组或集合中的每一个元素,只要枚举一个元素就执行一次语句块中的内容,在使用 foreach变量循环的过程中要注意不可以更改遍历中的集合。

扩展资料:

在遍历集合或数组时,如果不使用 for语句,那么 foreach语句是比较好的选择。 foreach语句可以迅速遍历集合或数组,省去 for语句中设置循环起点和循环条件的过程。所以,遍历数组或集合应该优先考虑 foreach语句。

 foreach(int index,ref ival;arr){}第一个变量表示数组arr的索引 ival表示数组下标为index对应的值 加了ref关键字表示ival与数组的值相关联(ival改变 数组值也相应改变...类似于C++的引用)。

参考资料来源:

百度百科-foreach

百度百科-for循环

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-29
两者其实是两个语句, 不明白你为什么要将他们放在一起比较.

for 其实是一个循环语句, 按照一定的条件对某个变量进行迭代, 实现循环或枚举每个可能的值. 当一个集合对象(包括数据)支持使用索引访问内部的数据时, 用for可以遍历出每个数据(实际上是使用索引循环访问每个数据)
foreach 则是遍历专用的一个关键字, 要求对象实现了 IEnumerable 接口(即可遍历), 通过访问它的GetEnumerator()返回迭代器, 通过它来逐个遍历数据. foreach其实是一种语法糖, 就是说编译器在编译的时候会将其转换为对应的程序语句.

因此对于遍历来说, 没有固定的场合限制, 大部分情况下需要视情况而定. 比如你要遍历 Dictionary, 因为它不支持索引访问, 那么如果你需要遍历它, 就只能用foreach. 大部分情况下foreach优先使用, 因为使用for有限制, 而且会引入新的变量造成复杂化; 而有些时候又需要使用for, 比如你还需要用对应数据的索引做运算时. 因此, 用谁不应用谁, 是要看情况的, 灵活使用.
第2个回答  推荐于2016-04-13
for任何情况下都能用,不管数组还是集合,但是前提是得知道元素个数才能遍历

foreach就不需要了知道总共多少个了,而且用起来方便,不用来回从数组或集合中提取对象,多数用于集合里对象的遍历和操作本回答被网友采纳
第3个回答  2010-11-29
for
基本上每种语言都有,就不用我解释了吧
foreach是C#语言独有的(也许其他语言也有,仅限我懂的语言中),和for循环的功能是一样的,只是写起来比较简洁一些的
第4个回答  2010-11-30
foreach需要实现遍历接口
相似回答