如何修复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;

        }
    }
}

}

} **!!!**