2016-07-25 108 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)。