以下 for 循环语法有什么问题,crv
变量是一个数组,我想要增量 2:
for(int i<0; i<crv.Count;i+2)
{
//Code Here
}
我的编译器只说Semicolon expected
这不是一个非常有用的反馈......
您需要开始初始化i
为零,而不是将其与零进行比较。此外,您的最后一条语句实际上并没有改变i
,它只是返回一个值,i+2
并且对该值不做任何事情,您需要实际设置i
为该结果。
for(int i = 0; i < crv.Count;i+=2)
{
//Code Here
}
最大的错误是i+2
没有重新分配给i
.
for(int i = 0; i<crv.Count;i = i+2)
{
//Code Here
}
您正在丢弃增量并且i
永远不会更改值。
然后,您不是在初始化i
,而是在检查它是否小于0
.
请注意:第一部分是分配你不能使用比较 as int i<0;
,而是应该是int i=0
orint 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;
}
虽然这些答案中的大多数确实告诉您如何修复您的代码,但它们并没有告诉您为什么它不起作用,我认为这对您理解很重要。
一个for
循环由三部分组成,用分号分隔。
for(part1;part2;part3)
part1
仅执行一次 - 当循环第一次开始执行时。(这通常是您为计数器分配初始值的地方)
part2
然后接下来执行,检查它的值是真还是假。
如果为真,则执行循环体
然后part3
被执行,(正如你试图做的那样)这通常是你递增的地方
然后part2
再次检查,如果为真,则再次执行该过程,如果为假,则存在循环
for 循环的第一部分决定 i 的初始值。在您的示例中,您有“<”,这不是一个可靠的值。尝试 i=0 代替。此外,最后一部分读取为 i,除了 2,而不是每次迭代添加两个。尝试 i+=2 代替。