fbpx
维基百科

Foreach循环

Foreach循环(Foreach loop)是计算机编程语言中的一种控制流程语句,通常用来循环遍历数组集合中的元素。

程序示例

C#

以下代码用于循环打印名称为myArray的整型数组中的每个元素。[1]

foreach (int x in myArray) {  Console.WriteLine(x); } 

C#不允许在foreach循环中改变数组或集合中元素的值(注:成员的值不受影响),如以下代码将无法通过编译。

foreach (int x in myArray) {  x++; //错误代码,因为改变了元素的值  Console.WriteLine(x); } 

如果要让自定义的数据类型支持foreach循环,则该类型必须实现IEnumerable<T>接口,且存在对应此列表的IEnumerator<T>实现。 实际上,在.Net的底层(IL语言层面)而言,

foreach (var x in list) // x的类型为T {   ... } 

等价于如下代码:

using (var iterator = list.GetEnumerator()) // iterator的类型为IEnumerator<T> {  while ( iterator.MoveNext() )   {  var x = iterator.Current();  ... // 本段代码中禁止修改x的值——编译器会报错  } } 

它只是为了让用户更加易于使用的等价描述形式。

Java

Java语言从JDK 1.5.0开始引入foreach循环。[2]

以下代码用于循环打印myArray数组中的每个元素,java中的foreach循环使用for关键字,而非foreach

for (int x : myArray){ System.out.println(x); } 

与C#不同的是,Java中运行以下代码不会编译出错,但是实际数组中的元素不会被修改。

for (int x : myArray){ x++; System.out.println(x); } 

C++

C++11擴展for的用法,增加了foreach功能,語法和Java一樣。

for (int x : myArray){  cout << x << endl; } 

同時也有C++求值策略的功能,可以傳參考。

for (int& x : myArray){  x = x * x; } for (int x : myArray){  cout << x << endl; } 

参考資料

  1. ^ foreach、in (C# 參考). msdn.microsoft.com. [2015-10-16]. (原始内容于2015-01-12). 
  2. ^ The For-Each Loop. docs.oracle.com. [2015-10-16]. (原始内容于2015-06-22). 

参见

foreach循环, foreach, loop, 是计算机编程语言中的一种控制流程语句, 通常用来循环遍历数组或集合中的元素, 目录, 程序示例, java, 参考資料, 参见程序示例, 编辑c, 编辑, 以下代码用于循环打印名称为myarray的整型数组中的每个元素, foreach, myarray, console, writeline, 不允许在foreach循环中改变数组或集合中元素的值, 成员的值不受影响, 如以下代码将无法通过编译, foreach, myarray, 错误代码, 因为改变了元素的值. Foreach循环 Foreach loop 是计算机编程语言中的一种控制流程语句 通常用来循环遍历数组或集合中的元素 目录 1 程序示例 1 1 C 1 2 Java 1 3 C 2 参考資料 3 参见程序示例 编辑C 编辑 以下代码用于循环打印名称为myArray的整型数组中的每个元素 1 foreach int x in myArray Console WriteLine x C 不允许在foreach循环中改变数组或集合中元素的值 注 成员的值不受影响 如以下代码将无法通过编译 foreach int x in myArray x 错误代码 因为改变了元素的值 Console WriteLine x 如果要让自定义的数据类型支持foreach循环 则该类型必须实现IEnumerable lt T gt 接口 且存在对应此列表的IEnumerator lt T gt 实现 实际上 在 Net的底层 IL语言层面 而言 foreach var x in list x的类型为T 等价于如下代码 using var iterator list GetEnumerator iterator的类型为IEnumerator lt T gt while iterator MoveNext var x iterator Current 本段代码中禁止修改x的值 编译器会报错 它只是为了让用户更加易于使用的等价描述形式 Java 编辑 Java语言从JDK 1 5 0开始引入foreach循环 2 以下代码用于循环打印myArray数组中的每个元素 java中的foreach循环使用for关键字 而非foreach for int x myArray System out println x 与C 不同的是 Java中运行以下代码不会编译出错 但是实际数组中的元素不会被修改 for int x myArray x System out println x C 编辑 C 11擴展for的用法 增加了foreach功能 語法和Java一樣 for int x myArray cout lt lt x lt lt endl 同時也有C 求值策略的功能 可以傳參考 for int amp x myArray x x x for int x myArray cout lt lt x lt lt endl 参考資料 编辑 foreach in C 參考 msdn microsoft com 2015 10 16 原始内容存档于2015 01 12 The For Each Loop docs oracle com 2015 10 16 原始内容存档于2015 06 22 参见 编辑for循环 取自 https zh wikipedia org w index php title Foreach循环 amp oldid 74532866, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。