-1

以下 for 循环语法有什么问题,crv变量是一个数组,我想要增量 2:

for(int i<0; i<crv.Count;i+2)
{
  //Code Here
}

我的编译器只说Semicolon expected这不是一个非常有用的反馈......

4

5 回答 5

4

您需要开始初始化i为零,而不是将其与零进行比较。此外,您的最后一条语句实际上并没有改变i,它只是返回一个值,i+2并且对该值不做任何事情,您需要实际设置i为该结果。

for(int i = 0; i < crv.Count;i+=2)
{
    //Code Here
}
于 2012-11-09T14:46:43.287 回答
2

最大的错误是i+2没有重新分配给i.

for(int i = 0; i<crv.Count;i = i+2)
{
  //Code Here
}

您正在丢弃增量并且i永远不会更改值。

然后,您不是在初始化i,而是在检查它是否小于0.

于 2012-11-09T14:47:10.107 回答
1

请注意:第一部分是分配你不能使用比较 as int i<0;,而是应该是int i=0orint i = -10或任何类似的东西。

同样在增量部分,将更新后的值分配回i

    for(int i =0; i<crv.Count; i+=2)
    {
      //Code Here
    }

或在正文中执行相同的操作(仅提及选项,这在某些特定情况下很有用)

    for(int i =0; i<crv.Count;)
    {
      //Code Here
      i+=2;
    }
于 2012-11-09T14:47:50.323 回答
1

虽然这些答案中的大多数确实告诉您如何修复您的代码,但它们并没有告诉您为什么它不起作用,我认为这对您理解很重要。

一个for循环由三部分组成,用分号分隔。

for(part1;part2;part3)

part1执行一次 - 当循环第一次开始执行时。(这通常是您为计数器分配初始值的地方)

part2然后接下来执行,检查它的值是真还是假。

如果为真,则执行循环体

然后part3被执行,(正如你试图做的那样)这通常是你递增的地方

然后part2再次检查,如果为真,则再次执行该过程,如果为假,则存在循环

于 2012-11-09T15:08:12.313 回答
0

for 循环的第一部分决定 i 的初始值。在您的示例中,您有“<”,这不是一个可靠的值。尝试 i=0 代替。此外,最后一部分读取为 i,除了 2,而不是每次迭代添加两个。尝试 i+=2 代替。

于 2012-11-09T14:48:34.007 回答