foreach和for循环区别(foreach和for循环区别前端)
foreach和for循环区别
在我们日常生活中偶尔会遇到一些自己不知道如何解决的问题,比如foreach和for循环区别。那么我们应该怎样解决这种自己不知道foreach和for循环区别的情况呢?那么接下来就由我来介绍一下foreach和for循环区别吧。
区别一:
如果只是遍历集合或者数组,用foreach好些,快些。
区别二:
如果对集合中的值进行修改,就要用for循环了。其实foreach的内部原理其实也是Iterator,但它不能像Iterator一样可以人为的控制,而且也不能调用iterator.remove();更不能使用下标来访问每个元素,所以不能用于增加,删除等复杂的操作。
看了我的方法,现在你学会分清foreach和for循环区别了吗?学会了的话就快快把这个方法分享出去,让更多的人知道foreach和for循环区别。以上就是foreach和for循环区别。
foreach与for的区别
1.如果只是遍历集合或者数组,用foreach好些,快些。
2.如果对集合中的值进行修改,就要用for循环了。其实foreach的内部原理其实也是Iterator,但它不能像Iterator一样可以人为的控制,而且也不能调用iterator.remove();更不能使用下标来访问每个元素,所以不能用于增加,删除等复杂的操作。举个例子:
for(String aid:list){
if(aid.equals("aa")){
list.remove(aid); //这行会报错,不能修改list的长度
}
}
所以foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句。
for循环与forEach循环的区别
for循环与forEach循环的区别:
1.写法不同:
2.关于中断循环
for循环是可以中断循环(利用break语句或return语句),但forEach不可以中断循环。
3.关于扩展js原生的Array类
使用for循环时,打印每个value值,并不会打印出来扩展js原生的Array类(譬如下图),但使用forEach循环,就可以打印出来。
4.关于循环中包含有异步语句
这条区别是我自己根据实践这么认为的,并不是书中标准语言,只可借鉴。
根据上图,可以看出for循环中包含异步语句时,初次遍历,进入到最里面的异步函数时,打印k,for循环已经循环完了,所以这个时候你打印的任何东西都是数组的最后一项。但是利用forEach循环,打印出来的就是数组中的每一项,不管异不异步。这个区别就是我这个需求中遇到的坑。以后记住了!!!!!!
for和foreach的区别
for和foreach有本质的区别
foreach的具体过程是由目标对象控制的
所以并非集合内容更改了就不可以使用foreach
而是array和collection对象如此实现了它而已
你却可以完全按照自己的想法去实现这一过程
也许你可以去翻一下gof的visitor模式,foreach看起来就是它的简化版本
我们应该把foreach当作一种设计模式而不是简单的一个循环语句去理解
目前c#里的foreach是以ienumerable的方式去实现,这只是保留com的实现方式,这种方式我认为其实不太便于理解
我想如果存在一个iforeachable其成员为foreach(..),这样可能更能让人容易明白
在C#中for循环和foreach循环有什么区别?
给你讲4个循环
当你想重复执行某些语句或语段时,依据当前不同的任务,C#提供4个不同的循环语句选择给你使用:
。for 语句
。foreach 语句
。while 语句
。do 语句
1.for
当你预先知道一个内含语句应要执行多少次时,for 语句特别有用。当条件为真时,常规语法允许重复地执行内含语句(和循环表达式):
for (初始化;条件;循环) 内含语句
请注意,初始化、条件和循环都是可选的。如果忽略了条件,你就可以产生一个死循环,要用到跳转语句(break 或goto)才能退出。
for (;;)
{
break; // 由于某些原因
}
另外一个重点是,你可以同时加入多条由逗号隔开的语句到for循环的所有三个参数。例如,你可以初始化两个变量、拥有三个条件语句,并重复4个变量。
2.foreach
已经在Visual Basic 语言中存在了很久的一个功能是,通过使用For Each 语句收集枚举。C#通过foreach 语句,也有一个用来收集枚举的命令:
foreach(表达式中的类型标识符) 内含语句
循环变量由类型和标识符声明,且表达式与收集相对应。循环变量代表循环正在为之运行的收集元素。
3.while
当你想执行一个内含语句0次或更多次时,while语句正是你所盼望的:
while (条件) 内含语句
条件语句——它也是一个布尔表达式 ——控制内含语句被执行的次数。你可以使用 break 和continue语句来控制while语句中的执行语句,它的运行方式同在for语句中的完全相同。
4,do
C#最后可利用的循环语句是do语句。它与while语句十分相似,仅当经过最初的循环之后,条件才被验证。
do
{
内含语句
}
while (条件);
do语句保证内含语句至少被执行过一次,而且只要条件求值等于真,它们继续被执行。通过使用break语句,你可以迫使运行退出 do 语块。如果你想跳过这一次循环,使用continue语句。
foreach 和 for 循环的区别
foreach 依赖 IEnumerable.
第一次 var a in GetList() 时 调用 GetEnumerator 返回第一个对象 并 赋给a,
以后每次再执行 var a in GetList() 的时候 调用 MoveNext.直到循环结束.
期间GetList()方法只执行一次.
foreach (var a in GetList())
{
...
}
=
var a;
IEnumerator e = GetList().GetEnumerator();
while (e.MoveNext)
{
a = e.Current;
}for 循环靠下标定位. list[3] 相当于 *(list + 3).
for(int i = 0; i GetCount(); i++)
{
....
}
=
int i = 0;
while(i GetCount())
{
...
}for 循环每次循环会调用 GetCount() 来比较长度. 而 foreach 不考虑长度,只调用一次GetList().
结论.
在固定长度或长度不需要计算的时候for循环效率高于foreach.
在不确定长度,或计算长度有性能损耗的时候,用foreach比较方便.
并且foreach的时候会锁定集合中的对象.期间不能修改.