黑马程序员技术交流社区

标题: for循环和foreach循环(已解决) [打印本页]

作者: 张腾达    时间: 2012-7-28 21:02
标题: for循环和foreach循环(已解决)
本帖最后由 张腾达 于 2012-7-30 09:09 编辑

请问for循环和foreach循环的异同,两种循环分别适用于什么情况呢
作者: 蔡尚猛    时间: 2012-7-28 21:15
for 你先要给初始值,还有就是简单的循环不负责取值

foreach 不需要事先给定初始值,他能自动遍历出的集合体的所有值,

for:常用于简单的循环;foreach:遍历一些集合的数据的时候会常用到
作者: 吴清华    时间: 2012-7-28 21:22
区别:
只能for循环不但可以从数组中读取元素,而且可以重新为数组的元素进行赋值,交换或者删除等操作。而foreach只能从数组中读取元素而不能重新赋值。
作者: 陈汉维    时间: 2012-7-28 21:25
个人理解:
for必须知道长度才可以遍历
而foreach在不知道长度的情况下也可以遍历
作者: 王辉    时间: 2012-7-28 21:32
for 你先要给初值,末值和步长
foreach 不需要事先给定初值,末值和步长,他是自动遍历给定的集合体的所有值
foreach 是只读的在循环体内不能对元素进行赋值操作
作者: 王广彬    时间: 2012-7-28 21:59
哈哈,给你举个例子吧:
class Demo2
{
        public static void main(String[] args)
        {
                int array[]={1,2,3,4,45,5,6,7};
                System.out.println("用foreach循环输出:");
                for(int a:array)System.out.print(a+" ");
                System.out.println("\n用for循环输出:");
                for(int i=0;i<array.length;i++){
                        System.out.print(array[i]+" ");
                }
        }
}
其实都挺好用的,到时得看你在什么情况下用.根据不同的情况用不同的方法.如果是单层循环用foreach比较方便,如果是多层循环要用for循环了.
作者: 黑马杨凯    时间: 2012-7-29 00:08
本帖最后由 黑马杨凯 于 2012-7-29 00:23 编辑

for循环的适用范围更广,更灵活,foreach循环用于遍历集合,要支持foreach循环,需要实现迭代器,要迭代一个类,使用方法GetEnumerator(),返回值为IEnumerator;要迭代一个方法使用IEnumerable。


作者: 李延辉    时间: 2012-7-29 09:47
foreach的效率比for的高,在foreach循环中,直接在一个集合里去数据,,无需判断下标等。另外,在使用foreach的时候要注意的是:在遍历集合的时候,不能对集合进行真删操作。





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