2016-07-25 156 views
-1

嗨即時爲我的Minecraft服務器做一個插件,但現在我有一個問題,即時卡住,如果其他語句,而更新它。 我已經搜索了很多論壇,但它現在沒有幫助,現在在這裏。 我使用日食。JAVA:語法錯誤插入else語句來完成如果語句

 if(commandName.equals("t")){ 

     } 
      if(!player.hasPermission("Clans.teamchat")) { 
       player.sendMessage(ChatColor.RED + "You do not have permission to use this command."); 
       return true; 
      } 
      if(!tPlayer.hasTeam()) { 
       player.sendMessage(ChatColor.RED + "You are not on a team."); 
       return true; 
      } 
      else if(!getRank(PlayerName).canTeamChat()) { 
       player.sendMessage(ChatColor.RED + "You lack sufficient permissions to talk in team chat."); 
       return true; 
      } 
      else if (args.length < 1) { 
       player.sendMessage(ChatColor.RED + "You did not enter a message to send."); 
       return true; 
      } 
      else if (args[0].equalsIgnoreCase("@loc")) { 
      return true; 
      } 
+1

您使用的IDE不相關。但你明白爲什麼這是多餘的:if(commandName.equals(「t」)){ }?你是否在最後一個else之後添加了return語句?如果沒有,所有可能的情況下都不會返回 – Stultuske

+1

您需要幫助的語法錯誤是什麼/哪裏? – smarx

回答

1

不知道它這是所有相關的代碼,但可能是因爲你缺少這些if之後的最終return聲明。原因在於,現在您的代碼不會處理不符合您的任何條件的情況,但您仍然需要爲您的方法提供返回值。

+0

在這種情況下,錯誤將是'缺少返回語句',但上面的錯誤是完全不同的。 –

0

你需要在這裏更勤奮;它從格式化和大括號開始。你真的希望每個塊之後,甚至像

if (something) { 
    just one thing 
} else { 
    just another thing 
} 

來作爲{和}內的塊。然後,您以一種嚴謹的方式格式化代碼(您知道,任何體面的IDE都可以爲您做到這一點) - 以便簡單地掌握您正在創建的「內容」。

換句話說:您的問題僅僅是您違反語法規則。避免這種情況的最簡單方法是編寫源代碼,該源代碼包含指導您的結構

您會發現,可能您錯過了最終的return語句,或者您將兩個elses放在另一個之後 - 如果您只是使用相同的規則和格式不斷寫下代碼,那麼所有這些都會變得很明顯。

當然還有其他的事情:如果冗長的if/else鏈總是你想通過做適當的OO設計來避免的東西。你不要求物體屬性做出決定;相反,您使用的接口來自不同的實現;所以,稍後,您只需調用這些方法(有關詳細說明,請參見here)。