Хотя цикл в игре угадывания чисел - PullRequest
1 голос
/ 07 апреля 2019

Мне нужно написать код, который просит вас угадать число от 1 до 10 и использует цикл. Он должен использовать метод System.in.read () для ввода данных пользователем. Правильное число равно 7, и когда вы угадываете, что оно заканчивается. Если вы угадаете неправильно, он скажет вам попробовать еще раз. Я не знаю, почему мой код работает неправильно, поэтому я мог бы использовать некоторую помощь. Вывод, который я получаю, странный, независимо от того, какое число я ввожу, он просто говорит:

  • Hello! Введите число от 1 до 10:
  • (введенный номер напр. 4)
  • Ваше предположение слишком высоко
  • Hello! Введите число от 1 до 10:
  • Ваше предположение слишком высоко
  • Hello! Введите число от 1 до 10:

Я новичок в программировании, поэтому извините, если он не с отступом или решение очевидно.

public static void main(String[] args) throws java.io.IOException {
    int input;
    boolean play = true;
    while (play == true) {
        System.out.println("Hello! Enter a number between 1 and 10: ");
        input = System.in.read();
        if (input > 7) {
            System.out.println("Your guess is too high");
        } else if (input < 7) {
            System.out.println("Your guess is too low");
        } else if (input == 7) {
            System.out.println("Correct! the correct number was: 7"); 
        }
    }
}

Это должно дать вам конкретный результат в зависимости от номера, например, если он слишком высокий или низкий, то вы можете повторить попытку и ввести новый номер, пока не получите правильный ответ 7. Если номер не 1 -10 вы должны получить сообщение об ошибке. Благодаря.

Ответы [ 2 ]

1 голос
/ 07 апреля 2019

Вы не изменяете переменную play, поэтому в цикле while нет перехода.Вам придется изменить его следующим образом:

else if (input == 7) {
    System.out.println("Correct! the correct number was: 7"); 
    play = false;
}

Также вы можете переместить эту строку: System.out.println("Hello! Enter a number between 1 and 10: "); до while loop.

0 голосов
/ 07 апреля 2019

Это может решить вашу проблему.

public static void main(String[] args) {

    int input;
    boolean play = true;
    Scanner inputNumber = new Scanner(System.in);
    while (play) {
        System.out.println("Hello! Enter a number between 1 and 10: ");
        input = inputNumber.nextInt();
        if (input > 7) {
            System.out.println("Your guess is too high");
        } else if (input < 7) {
            System.out.println("Your guess is too low");
        } else if (input == 7) {
            System.out.println("Correct! the correct number was: 7");
            play = false;
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...