有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我有一些代码,比如:

int batchPosition = new Integer(batchBegin);

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

但我在eclipse中遇到了一个错误:

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

我看了很多关于这个错误的帖子,用谷歌搜索了一下,但我不明白为什么这是不允许的


共 (3) 个答案

  1. # 1 楼答案

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

    for (batchPostion....
    

    它希望用于计算循环中的位置(batchPosition)的变量在循环头中初始化(first;o仅当;repeat)部分。)我猜这是因为我希望它只是循环的局部

    要修复此问题,只需将分配移到标题中,如下所示:

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

    虽然没那么漂亮,但会管用的

  2. # 2 楼答案

    batchPosition本身不是有效的初始化语句-您可以直接跳过它:

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

    但是,如果在循环之后不需要访问batchPosition,最好尽量减少变量的作用域:

    for (int batchPosition = new Integer(batchBegin); batchPosition <= batchEnd; batchPosition++)
    
  3. # 3 楼答案

    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++) 
    

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