我有一些代码,如下:
int batchPosition = new Integer(batchBegin);
for (batchPosition;batchPosition<=batchEnd;batchPosition++)
但是我在eclipse中得到了这个错误:
Syntax error, insert "AssignmentOperator Expression" to complete ForInit.
我已经查看了有关此错误的SO上的各种帖子,并用谷歌搜索了但我无法弄清楚为什么不允许这样做。
答案 0 :(得分:5)
batchPosition
不是有效的初始化声明 - 你可以简单地跳过它:
int batchPosition = new Integer(batchBegin);
for (; batchPosition <= batchEnd; batchPosition++)
但是如果你不需要在循环后访问batchPosition
,那么最好尽量减少变量范围:
for (int batchPosition = new Integer(batchBegin); batchPosition <= batchEnd; batchPosition++)
答案 1 :(得分:1)
由于某种原因,Java或Eclipse(或者麻烦)不喜欢循环的这一部分:
for (batchPostion....
它期望用于计算循环中位置( batchPosition )的变量在循环标题中初始化 ( for( f) irst; o nly when; r epeat)部分。)我猜这是因为希望它只是循环的本地。
要修复,只需将您的分配移动到标题中,如下所示:
for (int batchPosition = new Integer (batchBegin);batchPosition<=batchEnd;batchPosition++)
不是很漂亮,但它会起作用。
答案 2 :(得分:1)
for
循环包含4个执行部分:
初始化,条件,执行体,增量或减量
int batchPosition = new Integer(batchBegin);
for (batchPostion;batchPosition<=batchEnd;batchPosition++)
您错过了初始化部分。
在for
你已经初始化
for (;batchPosition<=batchEnd;batchPosition++)
OR
将for
之前的行移至for
for (int batchPosition = new Integer(batchBegin);batchPosition<=batchEnd;batchPosition++)
但是,在后一种情况下,您无法在batchPosition
范围之外使用for
。