for 与forEach的区别

for循环
for循环,通过下标,对循环中的代码反复执行,功能强大,可以通过index取得元素。在处理比较复杂的处理的时候较为方便。
foreach循环
foreach,从头到尾,对于集合中的对象遍历。适用于简单的遍历。foreach使用的时候,会锁定集合的对象,期间不能进行修改。
使用的选择
foreach相对于for循环,代码减少了,但是foreach依赖IEnumerable。在运行的时候效率低于for循环。当然了,在处理不确定循环次数的循环,或者循环次数需要计算的情况下。使用foreach比较方便。而且foreach的代码经过编译系统的代码优化后,和for循环的循环类似。
可以说,foreach语句是for语句的特殊简化版本,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。在复杂的循环设计时,还是应该使用for循环更加的灵活。

时间: 2024-10-04 12:31:20

for 与forEach的区别的相关文章

.NET for 和 foreach的区别

我们知道If,Else,For,While,Switch,变量等等都是面向过程中的基础知识,本篇文章主要就讲讲.NET 中For和Foreach之间的区别: -- For循环主要是有条件地进行遍历数据并筛选符合条件的数据. -- Foreach循环主要是一次性地遍历数据. 注:两种循环方式有好有坏,在不同的场景采用不同的循环方式,因人而异. 以下就简单列举个例子解析两种循环的差异: //主要的运行环境是VS2010,以控制台为例. //For循环的例子 //定义字符串数组 string[] st

Javascript/Jquery 中each() 和forEach()的区别

从名字看上去这两个方法好像有点关系,但在javascript中它们区别还是挺大的. forEach() 用于数组的操作,对数组中的每个元素执行制定的函数(不是数组不能使用forEach()方法). 而$.each() 是JQuery中的方法,用于对集合中的每个匹配元素执行制定的函数.此外,它们所对应的回调函数中的参数也不一样:Array.forEach(item,index,array1);$(selector).each(function(index,element)). 下面是$.each(

JavaScript中Map和ForEach的区别

译者按: 惯用Haskell的我更爱map. 原文: JavaScript?-?Map vs. ForEach - What's the difference between Map and ForEach in JavaScript? 译者: Fundebug 为了保证可读性,本文采用意译而非直译.另外,本文版权归原作者所有,翻译仅用于学习. 如果你已经有使用JavaScript的经验,你可能已经知道这两个看似相同的方法:Array.prototype.map()和Array.prototyp

js forEach for区别

1.循环中断差别 具体见示例代码: <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-U

C#基础之------for与foreach的区别

我们在数组的遍历中通常用到for循环. 例子: // for语句的遍历输出使用1 string [] names={"熊猫","狐狸","美人鱼"}; 2 3 for(int i=0;i<names.Length;i++) 4 { 5 string s1=names[i]; 6 Console.WritleLine(str); 7 } 8 9 Console.ReadKey(); 在C#里面还有另外一种遍历循环输出方法:foreach fo

for循环与foreach的区别

foreach 依赖 IEnumerable. 第一次 var a in GetList() 时 调用 GetEnumerator 返回第一个对象 并 赋给a, 以后每次再执行 var a in GetList() 的时候 调用 MoveNext.直到循环结束. 期间GetList()方法只执行一次. 1 2 3 4 5 6 7 8 9 10 11 12 13 foreach   (var a in GetList()) {     ... } = var a; IEnumerator  e 

c# for 和 foreach 的区别

foreach 能够进行foreach的类型结构,都必须实现IEnumerable接口. IEnumerable接口,有一个GetEnumerator的方法,返回一个实现IEnumerator接口的对象.IEnumerator接口,有Current只读属性,MoveNext方法,Reset方法. 第一次 var a in GetList() 时 调用 GetEnumerator 返回第一个对象 并 赋给a, 以后每次再执行 var a in GetList() 的时候 调用 MoveNext.直

PHP for和foreach的区别

首先,我们先准备两个用于遍历的数组: $arr1=array(1=>'a', 3=>22, 5=>'b', 4=>'c', 8=>'d'); $arr2=array('a'=>'aaa', 'b'=>'bbb', 'c'=>'ccc', 'd'=>'ddd', 'e'=>'eee'); 一:for循环结构 循环1: for($i=0,$num=count($arr1);$i<$num;$i++){ echo $arr1[$i].' '; }

foreachRDD,foreach,foreachPartition区别联系

foreachRDD(SparkStreaming): SparkStreaming是流式实时处理数据,就是将数据流按照定义的时间进行分割(就是"批处理").每一个时间段内处理到的都是一个RDD.而SparkStreaming中的foreachRDD方法就是在处理每一个时间段内的RDD数据. DStream中即使有foreachRDD算子也不会立即进行处理,只有foreach(func)函数func中存在action算子才会执行foreachRDD算子运算,所有foreachRDD的函