A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李景荣 中级黑马   /  2013-2-19 20:54  /  2661 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李景荣 于 2013-2-20 19:23 编辑

写了一段代码报错了

代码如下:
List<int> list = new List<int>();
            for (int i = 0; i <= list.Count; i++)
            {
                list.Add(i);
            }
是因为死循环导致内存不足的原因吗?

6 个回复

倒序浏览
你新建了一个未知长度的集合。。。
然后用list.count来做判断条件。。。
能不死循环么- -
回复 使用道具 举报
岳珅 发表于 2013-2-19 21:11
你新建了一个未知长度的集合。。。
然后用list.count来做判断条件。。。
能不死循环么- - ...

:lol  是不是所以内存崩掉了,就报错了啊?
回复 使用道具 举报
list.count无法定义到,所以循环一直go.
你可以在里面嵌套个递归算法,你会一步步的看到如何崩溃的,再index++,会看到再哪一步over  见证你电脑内存的时候到了
回复 使用道具 举报
  list.Add(i);  
你每add一次你的list.count就加一次,list.count 是动态变化的
所以list.count一直加下去,一直循环直到你的内存崩溃掉
回复 使用道具 举报
进入循环 i=0 ,list长度增加1,i 自增后 i<list.count 始终成立

未命名.jpg (28.74 KB, 下载次数: 229)

未命名.jpg
回复 使用道具 举报
死循环啊哥.....
List<int> list = new List<int>();
            for (int i = 0; i <= list.Count; i++)
            {
                list.Add(i);
            }
你这样写的话, list.Count 永远等于i
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马