黑马程序员技术交流社区

标题: foreach [打印本页]

作者: 邢凯    时间: 2014-8-5 09:12
标题: foreach
本帖最后由 邢凯 于 2014-8-5 11:08 编辑

foreach  这个是怎么是用的啊,哪个视频里面有啊
作者: 许庭洲    时间: 2014-8-5 09:26
本帖最后由 许庭洲 于 2014-8-5 10:32 编辑

1. foreach语句格式:
    foreach(type identifier in expression)  embedded-statement
2.其中类型(type )和标示符(identifier )用来声明循环变量,表达式(expression)对应集合;
3.每执行一次内嵌语句,循环变量就依次取集合中的一个元素代入其中;
4.foreach语句中的expression必须是集合类型,如果该集合的元素类型与循环变量类型不一致,则必须有一个显示定义的从集合中的元素类型到循环变量元素类型的显示转换。
5.foreach和for的区别:for可以不逐个遍历,比如每隔一个遍历一个,或者可以从后向前遍历。
6.只能在foreach对集合进行读,而不应该写。

作者: u010209195    时间: 2014-8-5 09:28
本帖最后由 u010209195 于 2014-8-5 09:33 编辑
  1. int[] nArray = new int[100];
  2. // Use "foreach" to loop array
  3. foreach( int i in nArray )
  4. {
  5.   Console.WriteLine(i);
  6. }

  7. // Use "for" to loop array
  8. for( int i = 0; i < nArray.Length; i++ )
  9. {
  10.   Console.WriteLine(i);
  11. }
复制代码

能用foreach遍历访问象必须集合或数组等;都需要实现接口IEnumerator或声明 GetEnumerator 类型
语法:foreach(type objName in collection/Array)
           {   
               //需要对objName的操作
           }

作者: 邢凯    时间: 2014-8-5 10:11
许庭洲 发表于 2014-8-5 09:26
1. foreach语句格式:
    foreach(type identifier in expression)  embedded-statement
2.其中类型(type ) ...

那大哥,这个foreach 和FOR循环有什么区别吗,我该什么时候使用foreach 这个呢
作者: 邢凯    时间: 2014-8-5 10:12
u010209195 发表于 2014-8-5 09:28
能用foreach遍历访问象必须集合或数组等;都需要实现接口IEnumerator或声明 GetEnumerator 类型
语法:for ...

我想知道应该在什么情况下使用foreach  这个
作者: 蜗牛阿布    时间: 2014-8-5 10:22
foreach好像是在循环遍历里面来使用, (数组循环遍历)
作者: 许庭洲    时间: 2014-8-5 10:33
邢凯 发表于 2014-8-5 10:11
那大哥,这个foreach 和FOR循环有什么区别吗,我该什么时候使用foreach 这个呢 ...

请看第5条和第6条说明
5.foreach和for的区别:for可以不逐个遍历,比如每隔一个遍历一个,或者可以从后向前遍历。
6.只能在foreach对集合进行读,而不应该写。

作者: 复古。先生    时间: 2014-8-5 10:55
int[] arr={2,4,5,6};
foreach(int i in arr)
{
   Console.WriteLine(i);
}

等同于

            int[] arr = { 2, 4, 5, 6 };
            int k = arr.Length;
            int[] yy=new int[k];
            for (int i = 0; i < arr.Length; i++)
            {
                yy[i] = arr[i];
                Console.WriteLine(yy[i]);
            }

//两者区别:就是代码foreach较简洁,因为他把for中的判断和自增都封装起来了。
作者: 邢凯    时间: 2014-8-5 11:08
复古。先生 发表于 2014-8-5 10:55
int[] arr={2,4,5,6};
foreach(int i in arr)
{

哦哦,有点明白了。谢谢
作者: 复古。先生    时间: 2014-8-6 15:47
邢凯 发表于 2014-8-5 11:08
哦哦,有点明白了。谢谢

慢慢来哦,急不了的,基础要扎实点。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2