0

我有一些代码,如下所示:

int batchPosition = new Integer(batchBegin);

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

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

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

我查看了关于这个错误的各种帖子,并用谷歌搜索了它,但我不知道为什么不允许这样做。

4

3 回答 3

5

batchPosition它本身不是一个有效的初始化语句 - 你可以简单地跳过它:

int batchPosition = new Integer(batchBegin);

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

但是,如果您不需要batchPosition在循环后访问,最好尽可能减少变量范围:

for (int batchPosition = new Integer(batchBegin); batchPosition <= batchEnd; batchPosition++)
于 2012-09-28T11:06:42.433 回答
1

for循环包含 4 个执行部分:

初始化、条件、执行体、递增或递减

int batchPosition = new Integer(batchBegin);  

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

您错过了初始化部分。

for在您已经初始化之前完全忽略它

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

或者

将之前的行for移到内部for

for (int batchPosition = new Integer(batchBegin);batchPosition<=batchEnd;batchPosition++) 

但是,在后一种情况下,您将无法使用batchPosition外部for范围。

于 2012-09-28T11:12:47.127 回答
1

出于某种原因,Java 或 Eclipse(或麻烦)不喜欢循环的这一部分:

for (batchPostion....

它期望用于计算循环中位置(batchPosition )的变量在循环头中初始化(for(一个当;重复)部分。)我猜这是因为希望它只是本地的循环。

要修复,只需将您的作业移动到标题中,如下所示:

for (int batchPosition = new Integer (batchBegin);batchPosition<=batchEnd;batchPosition++)

不那么漂亮,但它会工作。

于 2012-09-28T11:01:01.893 回答