使用小于(<)符号时,Eclipse会引发错误

时间:2015-04-10 13:08:39

标签: java syntax-error

当我使用小于号时,Eclipse会抛出语法错误。

抛出错误的行如下:

for (Iterator localIterator = linePanels.iterator(); localIterator.hasNext(); i < pane.getComponentCount());

我不能为我的生活弄清楚为什么它会抛出错误,它之前编译得很好并且运行良好,我根本没有改变任何代码。我刚刚在eclipse中打开它,它会抛出错误。 如果您需要更多信息,请询问。 编辑: 我得到错误的方法如下:

public void deselectAll()
{
JLayeredPane pane;
int i;
for (Iterator localIterator = linePanels.iterator(); localIterator.hasNext(); i < pane.getComponentCount())
 {
   pane = (JLayeredPane)localIterator.next();
   i = 0; continue;
   Component c = pane.getComponent(i);
   if ((c instanceof SimpleUIElement)) {
     ((SimpleUIElement)c).setSelected(false);
   }
   i++;
 }
}

4 个答案:

答案 0 :(得分:3)

我不知道你在for语句的第三部分要做什么,但第三部分只是表达式,你输入了一个条件。你想要输入这个? :

for (Iterator localIterator = linePanels.iterator(); localIterator.hasNext() && i < pane.getComponentCount(););

答案 1 :(得分:0)

你不能把一个条件放在for循环的第三部分,否则会给出编译时错误。以上for语句将无法编译

答案 2 :(得分:0)

编译:

import java.util.*;
import java.lang.*;
import java.io.*;

class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        int[] a = {1,2,3,4};
        for(int i = 0; i < 4; 2 < 3){
            System.out.println(a[i]);
        }
    }
}

给了我以下错误:

Main.java:13: error: not a statement
    for(int i = 0; i < 4; 2 < 3){
                            ^

所以这一切都是因为你的'for循环'&#39;结构错了。您必须将其更改为:

 for (Iterator localIterator = linePanels.iterator(); localIterator.hasNext() && i < pane.getComponentCount(););

请注意,我刚用java编译器编译它,IDE与此无关。

答案 3 :(得分:0)

如果您收到以下错误:

- Syntax error on token "<", invalid AssignmentOperator

来自JLS 14.14.1. The basic for Statement

  

BasicForStatement:
  for ( [ForInit] ; [Expression] ; [ForUpdate] ) Statement

ForUpdate 只能

  

分配
  PreIncrementExpression
  PreDecrementExpression
  PostIncrementExpression
  PostDecrementExpression
  的MethodInvocation
  ClassInstanceCreationExpression

但在你的情况下,它的条件。

将其更改为:

for (Iterator localIterator = linePanels.iterator(); localIterator.hasNext() && i < pane.getComponentCount(););