为什么我的for循环告诉我语法错误,插入“AssignmentOperator Expression”?

时间:2012-09-28 11:01:02

标签: java for-loop assignment-operator

我有一些代码,如下:

int batchPosition = new Integer(batchBegin);

for (batchPosition;batchPosition<=batchEnd;batchPosition++)

但是我在eclipse中得到了这个错误:

Syntax error, insert "AssignmentOperator Expression" to complete ForInit.

我已经查看了有关此错误的SO上的各种帖子,并用谷歌搜索了但我无法弄清楚为什么不允许这样做。

3 个答案:

答案 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