Помогите if if И ещё раз if, а также ограничение числа прописанния команды

usprogster

Новичок
Баллы
16
Каким образом в java можно реализовать переход от одних if к другим if?
Щас обьясню, назовем группку из 4 if "блоками", и значит если выполнен блок (Прописанна команда), надо перейти к другому блоку, и так до определенного числа блоков где данный цикл будет окончен.
Я хочу реализовать команду что Игрок может прописывать её к примеру 15 раз с разным результатом и не больше.
 
if принимает boolean true - false. При true выполняется блок if, а при false нет.
 
if принимает boolean true - false. При true выполняется блок if, а при false нет
Если честно, то не понял, я вообще хотел что бы при выполнении одного из 4-рех if идет переход к другому блоку.
Ну а в принципе можно пример?
 
Если честно, то не понял, я вообще хотел что бы при выполнении одного из 4-рех if идет переход к другому блоку.
Ну а в принципе можно пример?
Ну вот пример.
Код:
        int i = 0;
        if(i==0) {
            System.out.println("if 1");
            i++;
        }
        if(i==1) {
            System.out.println("if 2");
            i++;
        }
        if(i==2) {
            System.out.println("if 3");
            i++;
        }
        if(i==3) {
            System.out.println("if 4");
            i++;
        }
        if(i==4) {
            System.out.println("if 5");
            i++;
        }
 
И к чему эта пикча? Посты набиваешь?
К сожалению не работает, значение i попусту не увеличивается.
Вот часть кода
Код:
        int i = 1;
            if(e == null) {
                return false;
            }
            if(!(sender instanceof Player)) {
            sender.sendMessage("Вы не игрок!!");
                return false;
            }
            if(e.getBalance(p) < amount) {
                p.sendMessage(ChatColor.RED +"У вас недостаточно средств!");
                return false;
            }
            if(i==1 && e.getBalance(p) >= amount) {
                e.withdrawPlayer(p, amount).transactionSuccess();
                p.sendMessage(ChatColor.GOLD +"Ваш уровень повышен! Поздравляю, ваш уровень 2!");
                p.setMaxHealth(22);
                i++;
                amount=1500;
                return true;
            } 
            if(i==2 && e.getBalance(p) >= amount) {
                e.withdrawPlayer(p, amount).transactionSuccess();
                p.sendMessage(ChatColor.GOLD +"Ваш уровень повышен! Поздравляю, ваш уровень 3!");
                p.setMaxHealth(24);
                i++;
                amount=2000;
                return true;
            }
            if(i==3 && e.getBalance(p) >= amount) {
                e.withdrawPlayer(p, amount).transactionSuccess();
                p.sendMessage(ChatColor.GOLD +"Ваш уровень повышен! Поздравляю,  ваш уровень 4!");
                p.setMaxHealth(26);
                i++;
                amount=2500;
                return true;
            }
        return false;
}
}
 
К сожалению не работает, значение i попусту не увеличивается.
Вот часть кода
Тяжело тобой быть :D. Твоя переменная локальная внутри метода и переназначается каждый раз. Все просто. А еще она не привязана к конкретному игроку, но это уже другая история.
 
К сожалению не работает, значение i попусту не увеличивается.
Вот часть кода
Код:
        int i = 1;
            if(e == null) {
                return false;
            }
            if(!(sender instanceof Player)) {
            sender.sendMessage("Вы не игрок!!");
                return false;
            }
            if(e.getBalance(p) < amount) {
                p.sendMessage(ChatColor.RED +"У вас недостаточно средств!");
                return false;
            }
            if(i==1 && e.getBalance(p) >= amount) {
                e.withdrawPlayer(p, amount).transactionSuccess();
                p.sendMessage(ChatColor.GOLD +"Ваш уровень повышен! Поздравляю, ваш уровень 2!");
                p.setMaxHealth(22);
                i++;
                amount=1500;
                return true;
            }
            if(i==2 && e.getBalance(p) >= amount) {
                e.withdrawPlayer(p, amount).transactionSuccess();
                p.sendMessage(ChatColor.GOLD +"Ваш уровень повышен! Поздравляю, ваш уровень 3!");
                p.setMaxHealth(24);
                i++;
                amount=2000;
                return true;
            }
            if(i==3 && e.getBalance(p) >= amount) {
                e.withdrawPlayer(p, amount).transactionSuccess();
                p.sendMessage(ChatColor.GOLD +"Ваш уровень повышен! Поздравляю,  ваш уровень 4!");
                p.setMaxHealth(26);
                i++;
                amount=2500;
                return true;
            }
        return false;
}
}
Нехватка базовых знаний java. Не советую начинать изучение языка с разработки плагинов - у тебя постоянно будут вопросы, на которые ты не будешь знать ответы. Попробуй хотя бы взяться за книгу или полностью пройти какой-нибудь очередной интернет-курс.
 
Вот очередная подсказка.
Код:
    public Map<String, Integer> maps = new HashMap<>();

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if (sender instanceof Player) {
            Player player = (Player) sender;
            String name = player.getName();
            if (!maps.containsKey(name)) {
                maps.put(name, 1);
            }
            int i = maps.get(name);
            if (i == 1) {
                System.out.println("if 1");
                maps.put(name, i++);
            }
            if (i == 2) {
                System.out.println("if 2");
                maps.put(name, i++);
            }
            if (i == 3) {
                System.out.println("if 3");
                maps.put(name, i++);
            }
            if (i == 4) {
                System.out.println("if 4");
                maps.put(name, i++);
            }
            if (i == 5) {
                System.out.println("if 5");
            }
            return true;
        }
        return false;
    }
 
Нехватка базовых знаний java. Не советую начинать изучение языка с разработки плагинов - у тебя постоянно будут вопросы, на которые ты не будешь знать ответы. Попробуй хотя бы взяться за книгу или полностью пройти какой-нибудь очередной интернет-курс.
Звучит как приговор, однако не вижу смысла в том что бы читать книгу или смотреть курс ведь, это как то не рационально, тратить месяц на поиск решения одной проблемы. Да и для плагинов не так уж и много java учить надо, достаточно найти и отделить нужную информацию, а если что и понадобится то подтянуть. А если мне и понадобится углубится я всегда найду для этого время. Ну а насчет вопросов они всегда были и будут, ведь не возможно запомнить весь курс на отлично.
 
Звучит как приговор, однако не вижу смысла в том что бы читать книгу или смотреть курс ведь, это как то не рационально, тратить месяц на поиск решения одной проблемы. Да и для плагинов не так уж и много java учить надо, достаточно найти и отделить нужную информацию, а если что и понадобится то подтянуть. А если мне и понадобится углубится я всегда найду для этого время. Ну а насчет вопросов они всегда были и будут, ведь не возможно запомнить весь курс на отлично.
Повторюсь - это базис. Это не то, что учится месяцами непрерывного изучения - это основы джавы и в какой-то мере ООП в целом. Такое лучше знать, чтоб не спрашивать о подобных мелочах снова и снова - уйдет меньше времени как у тебя, так и отвечающих на твои вопросы.
Здесь у тебя проблема в том, что переменная i существует лишь в пределах метода. Её объявление требуется вывести за пределы метода - в сам класс. Но в таком случае у тебя будет одна переменная для всех юзеров - для решения этого @alexandrage уже предложил использовать Map.
 
Вот очередная подсказка.
Код:
    public Map<String, Integer> maps = new HashMap<>();

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if (sender instanceof Player) {
            Player player = (Player) sender;
            String name = player.getName();
            if (!maps.containsKey(name)) {
                maps.put(name, 1);
            }
            int i = maps.get(name);
            if (i == 1) {
                System.out.println("if 1");
                maps.put(name, i++);
            }
            if (i == 2) {
                System.out.println("if 2");
                maps.put(name, i++);
            }
            if (i == 3) {
                System.out.println("if 3");
                maps.put(name, i++);
            }
            if (i == 4) {
                System.out.println("if 4");
                maps.put(name, i++);
            }
            if (i == 5) {
                System.out.println("if 5");
            }
            return true;
        }
        return false;
    }
switch-case для кого создали?
 
Назад
Верх