当我使用小于号时,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++;
}
}
答案 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(););