变量不在多循环内递增

时间:2013-02-18 20:07:16

标签: c# asp.net loops nested-loops

这个问题令我难过。我有一个变量,我在一个循环中共享,它没有递增。

有问题的变量是elrObject.currentLocation。有两种方法可以增加它 - 如果XML元素为空或者不是。

以下是代码:

if (reader.Name == "Cell")
{  
    if (reader.IsEmptyElement)
    {       
        Response.Write("i ran<br>");
        elrObject.currentLocation++;
    }       
    else
    {
        while (reader.Read())
        {           
            if (reader.IsStartElement())
            {                                           
                //labels
                if (elrObject.currentLocation >= elrObject.index && elrObject.currentLocation <= elrObject.index + elrObject.colSpan)
                    Response.Write("i ran again<br>");

                Response.Write(elrObject.currentLocation + "<br>");
                elrObject.currentLocation++;

            }
            if (reader.Name == "Cell")
            break;
        }
    }
}

我得到的输出是:
0
1
2
3
5个

数字4表示XML元素为空且顶部循环运行时。我正在递增变量,但它不会显示我的数字4,它会完全跳过它并转到5.我确信上部循环正常运行并且在较低的循环之前,因为以下内容也会运行:

我跑了 我再次跑了

这确认了上部循环在较低的循环之前运行....但是数字4正在跳过它自己!我真的很感激这方面的一些帮助。

1 个答案:

答案 0 :(得分:4)

显示数字4不是假设。您没有

Response.Write(elrObject.currentLocation + "<br>");

中的

if (reader.IsEmptyElement)

块。