登录站点

用户名

密码

C#中FOR循环中的结束判断值是会变的。

已有 1102 次阅读  2012-10-09 22:46
以前用BASIC,ASP等时,FOR 循环的起始结束值是恒定不变的,如:
DIM X:X=10
FOR I = 1 TO X
  X=5
NEXT
虽然在循环体内X变成了5,但循环仍然会执行10次,所以用C#时也以为是这样的,但实际好像不是这样的。
如下题:
for (int j = 0; j < lastTopic2.ChildNodes.Count; j++)
{
     XML.InsertChild((XmlElement)topics, lastTopic2.ChildNodes[0]);
}
将lastTopic2里的子节点都加到topics里面去,本以为这样没问题,结果发现只执行了一半,原来随着程序执行,lastTopic2里面的节点越来越少,lastTopic2.ChildNodes.Count也会变小,所以到一半时就不执行了。
知道了原理,就改进了:
改进后如下:
int count = lastTopic2.ChildNodes.Count
for (int j = 0; j < count; j++)
{
     XML.InsertChild((XmlElement)topics, lastTopic2.ChildNodes[0]);
}
分享 举报