0

私は次のようなコードを持っています:

int batchPosition = new Integer(batchBegin);

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

しかし、私はEclipseでこのエラーを受け取ります:

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

私はこのエラーについてSOに関するさまざまな投稿を見て、グーグルで検索しましたが、なぜこれが許可されないのか理解できません。

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(f irst; o nly when; r epeat)の部分)で初期化されることを想定しています。ループに対してローカル。

修正するには、次のように、割り当てをヘッダーに移動します。

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

それほどきれいではありませんが、動作します。

于 2012-09-28T11:01:01.893 に答える