在iterator.hasNext()中,它显示一个错误。
令牌“ <”上的语法错误,无效的AssignmentOperator,位于iterator.hasNext()
JSONArray build;
int i;
for (; iteratorData.hasNext(); i < build.length())
{
-------------
-------------
i++;
}
答案 0 :(得分:4)
您在for循环的递增/递减子句中放置了一个条件。
您可能打算将其放在condition子句中:
int i = 0;
for (; iteratorData.hasNext() && i < build.length(); )
{
-------------
-------------
i++;
}
甚至更好:
int i = 0;
for (; iteratorData.hasNext() && i < build.length(); i++)
{
-------------
-------------
}
或(如果不需要在循环外使用i
的最终值):
for (int i = 0; iteratorData.hasNext() && i < build.length(); i++)
{
-------------
-------------
}
答案 1 :(得分:1)
根据JLS § 14.14,此基本for
语句的语法错误:
BasicForStatement: for ( [ForInit] ; [Expression] ; [ForUpdate] ) Statement BasicForStatementNoShortIf: for ( [ForInit] ; [Expression] ; [ForUpdate] ) StatementNoShortIf ForInit: StatementExpressionList LocalVariableDeclaration ForUpdate: StatementExpressionList StatementExpressionList: StatementExpression {, StatementExpression}
基本for
语句的第三个元素,即第二个分号之后的元素,在JLS中称为“ ForUpdate”。 ForUpdate需要 statement expression ,而i < build.length()
不是语句表达式。
由于在每次迭代结束时要递增i
,因此可以将该语句用作ForUpdate语句:
for (...; ...; i++) {
...
}
答案 2 :(得分:0)
您到底想做什么?但是我认为您想做的是:
while(iteratorData.hasNext()) {
for (int i = 0; i < build.length(); i++)
{
-------------
-------------
i++;
}
}