一次。我可能会问一个简单的问题。好的,让我开始吧;
我希望每个数字从0到9999.每个具体的数字都是。为什么?好吧,我需要它用于案例编号。这是我到目前为止所拥有的;
for (int i = 0; i < 9999; ++i)
{
if (line.Contains("if(intid == " + i + ")") || line.Contains("if intid == " + i) && !line.EndsWith(" then"))
{
ErrorBox.Items.Add("ERROR: You're missing then near " + line + " TIME: " + DateTime.Now);
}
}
我上面的内容只会得到最后一个9999的数字,但是我想要每个特定的数字0,1,2,3,4,5等。“i”应该检索每个数字,最多9999。但是,“for”循环无法正常工作。
答案 0 :(得分:0)
循环对我来说很好,我会说问题是你的if语句。试试这个:
if (line.Contains("if(intid == " + i + ")") || line.Contains("if intid == " + i) && !line.EndsWith(" then"))
{
ErrorBox.Items.Add("ERROR: You're missing then near " + line + " TIME: " + DateTime.Now);
}
else
ErrorBox.Items.Add("Not an error");
答案 1 :(得分:0)
你已经宣布为int;但是string.contains方法希望看到一个字符串。
所以,如果你在我的包含中,请改为使用i.ToString():
if (line.Contains("if(intid == " + i.ToString() + ")") || line.Contains("if intid == " + i.ToString()) && !line.EndsWith(" then"))
我不确定为什么它适用于9999而不适用于其他人。可能是||的逻辑和&amp;&amp; ?
安德鲁
答案 2 :(得分:0)
我认为您可能会遇到prescendence的问题。 &安培;&安培;在||之前评估。它就像1 + 2 * 3等于7。您需要添加()来正确评估表达式。 (b1 || b2)&amp;&amp; b3
修改
bool b1 = line.Contains("if(intid == " + i + ")");
bool b2 = line.Contains("if intid == " + i);
bool b3 = !line.EndsWith(" then");
所以写
if ((line.Contains("if(intid == " + i + ")") || line.Contains("if intid == " + i))
&& !line.EndsWith(" then"))