2016-10-25 3 views
-2

У меня проблемы с скобками, я делаю что-то неправильно. Все, что я добавляю в скобки где-то, пытаясь исправить ошибки, либо говорит, что мне нужен elseStatment, либо мне нужно добавить еще одну скобку, и когда я добавлю эту другую скобку, я получаю одну большую большую ошибку, говорящую «Unreachable Code».Как исправить скобки в программе Java?

Я был бы признателен, если бы кто-нибудь мог объяснить, почему это происходит, и помочь мне исправить это. Чтобы показать вам, где происходят ошибки, я поставлю 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; 

     } 
     { 

    } 

    } 

} **!!!** 
+2

Вам необходимо очистите отступы. Ты повсюду с этим. После того, как у вас есть код, подходящий, брекетинг должен стать ВИЗУАЛЬНО очевидным. –

+0

Кроме того, ваш ifs не имеет никакого смысла? – Li357

+0

Его нижняя часть все испортила, вы вернули false;} {}}} также вверху, если первая не имеет замыкания после возврата true; Это должно быть очевидно, если вы используете IDE Check out code Format, если используете идеал, чтобы увидеть проблемы, которые у вас есть, например, любой код после возвращения недоступен. –

ответ

2

Это:

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) { 

Обратите внимание на indendetation. Этот кодовый блок может ТОЛЬКО выполнять, если args.length равен 0, а это значит, что args.length == 1 может НИКОГДА быть правдой. А так как вы return безоговорочно до этого второго, если есть ваш «недостижимый код».

Так .. вы, вероятно, отсутствует } прямо:

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 

Если бы вы нашли время, чтобы правильно форматировать код, это должно стать очевидным.

+0

Также обратите внимание, что сообщение 'Unreachable Statement' сообщается, поскольку возвращается код поэтому весь другой код не выполняется и, следовательно, недоступен. – Li357

+0

Следующая отсутствующая закрывающая скобка предназначена для 'else if (args [0] .equals (" on ")) {' –

+0

О, я вижу сейчас, да, что помогло, но теперь я получаю эту часть «Недостижимый код». Его близок к концу в:} else if (args [0] .equals («off»)) { – Ragnarok

0

У вас есть целый ряд вопросов, но вот что я придумал, что у него есть нужные скобки, по крайней мере, я думаю, что они основаны на том, что я предполагаю, что вы пытаетесь сделать:

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; 

     } 
    } 
} 

} 

} **!!!** 
+0

Исправлено большинство выпусков кронштейна, но у меня нет раздела, где говорится «Недостижимый код». Прямо здесь: } else if (args [0] .equals («off»)) { player.setAllowFlight (false); player.setFlying (false); player.sendMessage (ChatColor.GOLD + "Настройка полета для игрока:" + ChatColor.RED + player.getName() + ChatColor.GOLD + ChatColor.BOLD + "Off!"); return true; – Ragnarok

+0

@ Ragnarok Я обновил код с комментарием. У вас есть оператор возврата, а затем код под ним. Весь код под ним недостижим, потому что вы его возвращаете. Переместите этот код или оператор return. – BlackHatSamurai

+0

Хорошо, хорошо, теперь у него все еще есть проклятая вещь недоступного кода. Я так сильно ненавижу эту ошибку. Есть ли у вас идеи о том, что я должен сделать для этого? @BlackHatSamurai – Ragnarok

 Смежные вопросы

  • Нет связанных вопросов^_^