2016-04-23 149 views
-2

我已經尋遍谷歌,但並沒有發現任何修復...下面的代碼:語法錯誤,無效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; 
} 
+4

你的第三個參數'for'是一個比較,這沒有任何意義。 – Siguza

回答

0

如果你想在你for聲明兩個條件,你應該使用&&布爾運算符將它們加入到一個條件:

for (Iterator localIterator = getCommands().iterator(); 
    localIterator.hasNext() && i < length) { 

注意,順便說一下,你應該初始化ilength嘗試之前使用它們。你目前的代碼沒有。

+0

謝謝。我會嘗試一些初始化它們,因爲它們已經在for循環中了=) – Fabio

1

在你的第三個參數的循環是不正確。我猜你想是這樣的:

for (Iterator localIterator = getCommands().iterator(); localIterator.hasNext() && i < length;) 
1

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++; 
} 
0

試試這個:

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; 
}