Как решить эту проблему со сканером? Я хочу, чтобы четыре действия работали, но всякий раз, когда я ввожу их и нажимаю Enter, они не работают

Я пытаюсь создать контрафактную игру про покемонов, но этот сканер не работает.

JavaBattle объект создается внутри драйвера. В драйвере все работает, а этот код нет. «Циклон», «Вращение Торнадо», «Термал» и «Хафф-н-Пафф» должны работать, но не с первой попытки.

Я действительно не знаю, что мне делать.

import java.util.*;
public class JavaBattle{
    private int opponentHealth;

    public void fight(){
        opponentHealth = 100;
        Scanner attackchoice = new Scanner(System.in);
        System.out.println("Attacks:\nCylcone\nTornado Spin\nThermal\nHuff 'n Puff");
        System.out.println("Choose One:");
        String ability = attackchoice.nextLine();
        if (!ability.equals("Cyclone")||!ability.equals("Tornado 
Spin")||!ability.equals("Thermal")||!ability.equals("Huff 'n Puff")){
            System.out.println("Not available. Please Try Again.");
            System.out.println("Attacks:\nCylcone\nTornado Spin\nThermal\nHuff 'n Puff");
            System.out.println("Choose One: ");
            ability = attackchoice.nextLine();
        }
        int randAttackDamage = (int)(Math.random()*16)+15;
        int randOpponentAttack = (int)(Math.random()*21)+10;
        System.out.println(ability + " was used." + "("+randAttackDamage+")");
        opponentHealth = opponentHealth - randAttackDamage;
        System.out.println("Opponents Current Health: " + opponentHealth);
    }
}
if (!value==1 || !value==2) всегда будет входить в блок then, потому что значение не может быть равно всем этим значениям одновременно. Вместо этого вы хотите if (!value==1 && !value==2)
Aaron 29.05.2019 17:23
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
25
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам нужно заменить ваши логические операторы ИЛИ || на операторы И &&. С вашим кодом ваше предложение if верно только в том случае, если ability — это все четыре способности одновременно. Вы хотите проверить, не является ли способность ни одной из доступных способностей.

Другие вопросы по теме