foreach和for循环区别(foreach和for循环区别前端)

http://www.itjxue.com  2023-01-25 21:51  来源:未知  点击次数: 

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的时候会锁定集合中的对象.期间不能修改.

(责任编辑:IT教学网)

更多

推荐淘宝营销文章