语法错误,无效AssignementOperato
问题描述:
我已经寻遍谷歌,但并没有发现任何修复...下面的代码:语法错误,无效AssignementOperato
public Command getCommandbyAlias(String alias)
{
int length;
int i;
for (Iterator localIterator = getCommands().iterator(); localIterator.hasNext(); i < length) //Here, at i < length
{
Command cmd = (Command)localIterator.next();
String[] alias2;
length = (alias2 = cmd.getAlias()).length;
i = 0;
continue;
String aliases = alias2[i];
Utils.addChatMessage(aliases);
if (aliases.equalsIgnoreCase(alias)) {
return cmd;
}
i++;
}
return null;
}
答
如果你想在你for
声明两个条件,你应该使用&&
布尔运算符将它们加入到一个条件:
for (Iterator localIterator = getCommands().iterator();
localIterator.hasNext() && i < length) {
注意,顺便说一下,你应该初始化i
和length
尝试之前使用它们。你目前的代码没有。
+0
谢谢。我会尝试一些初始化它们,因为它们已经在for循环中了=) – Fabio
答
在你的第三个参数的循环是不正确。我猜你想是这样的:
for (Iterator localIterator = getCommands().iterator(); localIterator.hasNext() && i < length;)
答
按oracle doc小号
for (initialization; termination;
increment) {
statement(s)
}
第三arguement保留用于递增/递减语句,如果你感到困惑它是可选
关于使用for循环,然后去while
按照以下代码
Iterator localIterator = getCommands().iterator();
while(localIterator.hasNext() && i < length)
{
Command cmd = (Command)localIterator.next();
String[] alias2;
length = (alias2 = cmd.getAlias()).length;
i = 0;
continue;
String aliases = alias2[i];
Utils.addChatMessage(aliases);
if (aliases.equalsIgnoreCase(alias)) {
return cmd;
}
i++;
}
答
试试这个:
public Command getCommandbyAlias(String alias)
{
int length;
int i;
Iterator localIterator = getCommands().iterator();
while (localIterator.hasNext() && i < length)
{
Command cmd = (Command)localIterator.next();
String[] alias2;
length = (alias2 = cmd.getAlias()).length;
i = 0;
continue;
String aliases = alias2[i];
Utils.addChatMessage(aliases);
if (aliases.equalsIgnoreCase(alias)) {
return cmd;
}
i++;
}
return null;
}
你的第三个参数'for'是一个比较,这没有任何意义。 – Siguza