Как убедиться, что используется только один вывод, даже если критерии выполнены для двух выходов?

#java #eclipse

#java #eclipse

Вопрос:

Я работал над небольшим проектом, ничего сумасшедшего, просто небольшая вещь, чтобы показать своим друзьям, и у меня возникла проблема, когда я попытался создать две разные возможности. Я пытался сделать так, чтобы, если в параметре number grenerator появилось число 1, использовался другой метод, чем если бы он выдавал другое число. Однако, когда я попробовал это, оба метода сработали. Я надеялся, что есть другой способ, которым я мог бы попробовать это. Дайте мне знать, если у вас есть какие-либо идеи.

Я проверил в своих книгах по Java, которые меня обучают, и онлайн в «Stackoverflow» и в общих поисках.

 public static void main(String args[]) {
    Scanner keyboard = new Scanner(System.in);
    Random myRandom = new Random();
    long randomNumber;

    System.out.println("What is your question my puppet?");
    keyboard.nextLine();

    randomNumber = myRandom.nextInt(10);

    if (randomNumber ==1) {
        System.out.println("Try rewordding that, it doesn't sound right");
        keyboard.close();

    }              


    if (randomNumber > 5) {
        System.out.println("Ah, I can sense that yes is the answer you're looking for.");
    } else {
        System.out.println("Ah, I can sense that no is the answer you're looking for.");
    }

    keyboard.close();
}
}
  

Я ожидаю, что если выбрано число 1, появится сообщение «Попробуйте изменить это, это звучит неправильно», но поскольку оно также соответствует критериям для числа меньше 5, на которое появляется это сообщение.

Комментарии:

1. Отделите его от if, else-if цепочки. Также не закрывайте Scanner чтение из System.in .

Ответ №1:

Добавьте else перед вторым (в настоящее время независимым) if . Нравится,

 if (randomNumber == 1) {
    System.out.println("Try rewordding that, it doesn't sound right");
    // keyboard.close(); // not needed you have another close call later.
} else if (randomNumber > 5) {
    // ...