如何修复Java程序中的括号?
我的括号有问题,我做错什么了吗。我在某个地方添加了一个括号试图修复错误,它要么说我需要一个如何修复Java程序中的括号?,java,plugins,minecraft,bukkit,Java,Plugins,Minecraft,Bukkit,我的括号有问题,我做错什么了吗。我在某个地方添加了一个括号试图修复错误,它要么说我需要一个elstation,要么我需要添加另一个括号,当我添加另一个括号时,我得到一个很大的错误,说“无法访问的代码” 如果有人能解释为什么会发生这种情况并帮我解决,我将不胜感激。为了向您显示错误发生的位置,我将放置3个感叹号 package me.bukkit.Ragnarok; import org.bukkit.ChatColor; import org.bukkit.command.Command; im
elstation
,要么我需要添加另一个括号,当我添加另一个括号时,我得到一个很大的错误,说“无法访问的代码”
如果有人能解释为什么会发生这种情况并帮我解决,我将不胜感激。为了向您显示错误发生的位置,我将放置3个感叹号
package me.bukkit.Ragnarok;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import net.minecraft.server.v1_10_R1.PlayerSelector;
public class StandardFlight extends JavaPlugin {
@Override
public void onEnable() {
getLogger().info("StandardFlight: Flight plugin has been loaded successfully!");
}
@Override
public void onDisable() {
} **!!!**
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (cmd.getName().equalsIgnoreCase("flight") && sender instanceof Player) {
Player player = (Player) sender;
if(player.hasPermission("uheal.heal.self")) {
if (args.length == 0) {
player.sendMessage(ChatColor.GOLD + "Ops, try " + ChatColor.RED + "/flight on " + ChatColor.GOLD + "or " + ChatColor.RED + "/flight off");
return true;
if (args.length == 1) {
} else if (args[0].equals("on")) {
player.setAllowFlight(true);
player.setFlying(true);
player.sendMessage(ChatColor.GOLD + "Setting Flight for player: " + ChatColor.RED + player.getName() + ChatColor.GOLD + ChatColor.BOLD + " On!");
return true;
if (args.length == 1) {
} else if (args[0].equals("off")) {
player.setAllowFlight(false);
player.setFlying(false);
player.sendMessage(ChatColor.GOLD + "Setting Flight for player: " + ChatColor.RED + player.getName() + ChatColor.GOLD + ChatColor.BOLD + " Off!");
return true;
}
return false;
}
{
}
}
} **!!!**
这:
注意索引。仅当args.length
为0时,此代码块才能执行,这意味着args.length==1
可以从不为真。由于在那一秒if之前,您无条件地返回,因此存在您的“无法访问的代码”
所以。。您可能丢失了一个}
:
if (args.length == 0) {
player.sendMessage(ChatColor.GOLD + "Ops, try " + ChatColor.RED + "/flight on " + ChatColor.GOLD + "or " + ChatColor.RED + "/flight off");
return true;
} else if (args.length == 1) {
^^^^^^^^^^---NOTE THIS
如果您花时间正确格式化代码,这一点应该会变得显而易见。您有很多问题,但以下是我提出的具有适当括号的内容,至少我认为它们是基于我假设您正在尝试的内容:
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import net.minecraft.server.v1_10_R1.PlayerSelector;
public class StandardFlight extends JavaPlugin {
@Override
public void onEnable() {
getLogger().info("StandardFlight: Flight plugin has been loaded successfully!");
}
@Override
public void onDisable() {
} **!!!**
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (cmd.getName().equalsIgnoreCase("flight") && sender instanceof Player) {
Player player = (Player) sender;
if(player.hasPermission("uheal.heal.self")) {
if (args.length == 0) {
player.sendMessage(ChatColor.GOLD + "Ops, try " + ChatColor.RED + "/flight on " + ChatColor.GOLD + "or " + ChatColor.RED + "/flight off");
return true;
}
if (args.length == 1) {
} else if (args[0].equals("on")) {
player.setAllowFlight(true);
player.setFlying(true);
player.sendMessage(ChatColor.GOLD + "Setting Flight for player: " + ChatColor.RED + player.getName() + ChatColor.GOLD + ChatColor.BOLD + " On!");
return true;
//This code is unreachable because you have a return statement above it. You need to move the code below it.
if (args.length == 1) {
} else if (args[0].equals("off")) {
player.setAllowFlight(false);
player.setFlying(false);
player.sendMessage(ChatColor.GOLD + "Setting Flight for player: " + ChatColor.RED + player.getName() + ChatColor.GOLD + ChatColor.BOLD + " Off!");
return true;
}
return false;
}
}
}
}
} **!!!**
你应该清理你的凹痕。你到处都是这样。一旦你的代码正确独立,括号应该在视觉上变得明显。而且,你的ifs没有任何意义?它是在底部的那个,把所有的东西都搞乱了,返回false;}{}}也在顶部,返回true后第一个if没有右大括号;如果您使用IDE签出代码格式,这一点应该很明显如果您使用IDE查看您存在的问题,例如,返回后的任何代码都是不可访问的。请注意,Unreachable语句
是报告的,因为该代码返回,所以所有其他代码都不会执行,因此无法访问。下一个缺少的右括号是else if(args[0].equals(“on”){
哦,我知道了,是的,这很有帮助,但现在我明白了“无法访问的代码”部分。它接近结尾处:}else if(args[0].equals(“off”){它解决了大多数括号问题,但我没有,我有一个部分说“无法访问的代码”。就在这里:}else if(args[0].equals(“off”){player.setAllowFlight(false);player.setFlying(false);player.sendMessage(ChatColor.GOLD+“为玩家设置航班:”+ChatColor.RED+player.getName()+ChatColor.GOLD+ChatColor.BOLD+“关闭!”);return true;@Ragnarok我用注释更新了代码。你有一个return语句,然后在它下面编码。它下面的所有代码都是无法访问的,因为你返回了它。移动那个代码或return语句。好吧,现在它仍然有他妈的无法访问的代码。我非常讨厌那个错误。你对它有什么想法吗我应该怎么做?@BlackHatSamuraiI认为你应该格式化你的代码,正确排列你的括号,并浏览代码。你有很多返回语句可能会导致这个问题。你需要把所有的东西都排列好,这样你才能看到你在做什么。好的,可以。对不起,我是一个新手,我正在尝试只是为了不出现任何错误,以便我可以导出并测试它。。。
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import net.minecraft.server.v1_10_R1.PlayerSelector;
public class StandardFlight extends JavaPlugin {
@Override
public void onEnable() {
getLogger().info("StandardFlight: Flight plugin has been loaded successfully!");
}
@Override
public void onDisable() {
} **!!!**
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (cmd.getName().equalsIgnoreCase("flight") && sender instanceof Player) {
Player player = (Player) sender;
if(player.hasPermission("uheal.heal.self")) {
if (args.length == 0) {
player.sendMessage(ChatColor.GOLD + "Ops, try " + ChatColor.RED + "/flight on " + ChatColor.GOLD + "or " + ChatColor.RED + "/flight off");
return true;
}
if (args.length == 1) {
} else if (args[0].equals("on")) {
player.setAllowFlight(true);
player.setFlying(true);
player.sendMessage(ChatColor.GOLD + "Setting Flight for player: " + ChatColor.RED + player.getName() + ChatColor.GOLD + ChatColor.BOLD + " On!");
return true;
//This code is unreachable because you have a return statement above it. You need to move the code below it.
if (args.length == 1) {
} else if (args[0].equals("off")) {
player.setAllowFlight(false);
player.setFlying(false);
player.sendMessage(ChatColor.GOLD + "Setting Flight for player: " + ChatColor.RED + player.getName() + ChatColor.GOLD + ChatColor.BOLD + " Off!");
return true;
}
return false;
}
}
}
}
} **!!!**