Программа, считывающая только первое число, была введена, остальная часть числа, введенного пользовательской программой, игнорирует и всегда считывает первое число?

#java #if-statement #for-loop #random #switch-statement

#java #if-оператор #for-цикл #Случайный #switch-оператор

Вопрос:

У меня есть приведенная ниже программная кодировка, я пробовал, но она всегда считывает первое число только в случаях….

«Программа, считывающая только первое число, была введена, остальная часть числа, введенного пользовательской программой, игнорирует и всегда считывает первое число?» «Также, пожалуйста, решите math.random только для определенного числа».

 public static void main(String[] args) {

    Scanner reading = new Scanner(System.in);


    int randomNumber = (int) (Math.random() * 50-1);

    int input;
    int guessNumber;

    System.out.println("       Welcome UCT beginers Game we will tes your IQ      ");
    for (int i=1; i<3; i  )
    {
    System.out.println("       Please select your level Game     ");
    System.out.println("1. Three chances to play.");
    System.out.println("2. Five chances to play");
    System.out.println("3. Ten chances to play");
    System.out.println("4. Exit the Game");

    input = reading.nextInt();



    switch (input) 
    {

    case 1:
        System.out.println("       Welcome You have chosen level ONE. This is normally can pass only with higher IQ");
        System.out.println("Please Guess my number");
        guessNumber = reading.nextInt();
        if (randomNumber == guessNumber )
        {
            System.out.println("          Congratulation; You have earned 3 coins");
            break;

        }

        else if (randomNumber > guessNumber )
        {for (int a = 1; a < 3; a  )

            {
            System.out.println("          Sorry Low number");
            guessNumber = reading.nextInt();

            }
            System.out.println("Sorry!  we can't help you any more, You failed *** The number was " randomNumber);
        }
        else if (randomNumber < guessNumber)
        {for (int a = 1; a < 3; a  )
            {
            System.out.println("          Sorry High number"     );
            guessNumber = reading.nextInt();
            }
            System.out.println("Sorry!  we can't help you any more, You failed *****The number was "  randomNumber);
        }
        break;
    case 2:
        System.out.println("       Welcome You have chosen level TWO. This is normally can pass middale IQ");
        System.out.println("Please Guess my number");
        guessNumber = reading.nextInt();
        if (randomNumber == guessNumber )
        {
            System.out.println("          Congratulation; You have earned 3 coins");
            break;
        }
        else if (randomNumber > guessNumber )
        {for (int a = 1; a < 5; a  )
            {
            System.out.println("          Sorry Low number");
            guessNumber = reading.nextInt();
            }
        System.out.println("Sorry!  we can't help you any more, You failed *** The number was " randomNumber);
        }
        else if (randomNumber < guessNumber)
        {for (int a = 1; a < 5; a  )
            {
            System.out.println("          Sorry High number");
            guessNumber = reading.nextInt();
            }
            System.out.println("Sorry!  we can't help you any more, You failed *** The number was" randomNumber);
        }
        break;
    case 3:
        System.out.println("       Welcome You have chosen level THREE. This passes normally every person");
        System.out.println("Please Guess my number");
        guessNumber = reading.nextInt();
        if (randomNumber == guessNumber )
        {
            System.out.println("          Congratulation; You have earned 3 coins");
            break;
        }
        else if (randomNumber > guessNumber )
        {
            for (int a = 1; a < 10; a  )
            {
            System.out.println("          Sorry Low number");
            guessNumber = reading.nextInt();
            }
            System.out.println("Sorry!  we can't help you any more, You failed *** The number was " randomNumber);
        }
        else if (randomNumber < guessNumber)
        {
            for (int a = 1; a < 10; a  )
            {
            System.out.println("          Sorry High number");
            guessNumber = reading.nextInt();
            }
            System.out.println("Sorry!  we can't help you any more, You failed *** The number was " randomNumber);
        }
        break;
    case 4:

        System.exit(0);
        break;
    default:
        System.out.println("Invalid entary");
        break;

    }

}



}
  

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

1. Можете ли вы, пожалуйста, уточнить и рассказать, что мне нужно?

Ответ №1:

 public static void main(String args[]) {
        int input;
        int guessNumber;
        Scanner reading = new Scanner(System.in);
        int randomNumber = (int) (Math.random() * 50 - 1);
        System.out.println("       Welcome UCT beginers Game we will tes your IQ      ");
        System.out.println("       Please select your level Game     ");
        System.out.println("1. Three chances to play.");
        System.out.println("2. Five chances to play");
        System.out.println("3. Ten chances to play");
        System.out.println("4. Exit the Game");
        while (reading.hasNext()){
            input = reading.nextInt();
            switch (input) {
                case 1:
                    System.out.println("       Welcome You have chosen level ONE. This is normally can pass only with higher IQ");
                    System.out.println("Please Guess my number");
                    guessNumber = reading.nextInt();
                    if (randomNumber == guessNumber) {
                        System.out.println("          Congratulation; You have earned 3 coins");
                        break;

                    } else if (randomNumber > guessNumber) {
                        for (int a = 1; a < 3; a  )

                        {
                            System.out.println("          Sorry Low number");
                            guessNumber = reading.nextInt();

                        }
                        System.out.println("Sorry!  we can't help you any more, You failed *** The number was "   randomNumber);
                    } else if (randomNumber < guessNumber) {
                        for (int a = 1; a < 3; a  ) {
                            System.out.println("          Sorry High number");
                            guessNumber = reading.nextInt();
                        }
                        System.out.println("Sorry!  we can't help you any more, You failed *****The number was "   randomNumber);
                    }
                    break;
                case 2:
                    System.out.println("       Welcome You have chosen level TWO. This is normally can pass middale IQ");
                    System.out.println("Please Guess my number");
                    guessNumber = reading.nextInt();
                    if (randomNumber == guessNumber) {
                        System.out.println("          Congratulation; You have earned 3 coins");
                        break;
                    } else if (randomNumber > guessNumber) {
                        for (int a = 1; a < 5; a  ) {
                            System.out.println("          Sorry Low number");
                            guessNumber = reading.nextInt();
                        }
                        System.out.println("Sorry!  we can't help you any more, You failed *** The number was "   randomNumber);
                    } else if (randomNumber < guessNumber) {
                        for (int a = 1; a < 5; a  ) {
                            System.out.println("          Sorry High number");
                            guessNumber = reading.nextInt();
                        }
                        System.out.println("Sorry!  we can't help you any more, You failed *** The number was"   randomNumber);
                    }
                    break;
                case 3:
                    System.out.println("       Welcome You have chosen level THREE. This passes normally every person");
                    System.out.println("Please Guess my number");
                    guessNumber = reading.nextInt();
                    if (randomNumber == guessNumber) {
                        System.out.println("          Congratulation; You have earned 3 coins");
                        break;
                    } else if (randomNumber > guessNumber) {
                        for (int a = 1; a < 10; a  ) {
                            System.out.println("          Sorry Low number");
                            guessNumber = reading.nextInt();
                        }
                        System.out.println("Sorry!  we can't help you any more, You failed *** The number was "   randomNumber);
                    } else if (randomNumber < guessNumber) {
                        for (int a = 1; a < 10; a  ) {
                            System.out.println("          Sorry High number");
                            guessNumber = reading.nextInt();
                        }
                        System.out.println("Sorry!  we can't help you any more, You failed *** The number was "   randomNumber);
                    }
                    break;
                case 4:

                    System.exit(0);
                    break;
                default:
                    System.out.println("Invalid entary");
                    break;

            }

        }


    }
  

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

1. Но то же самое. Не могли бы вы подробнее уточнить?

2. посмотрите внимательно. вы проверили мой код? это не то же самое, что ваше

3. Даже я копирую и вставляю и ничего не решаю. Может ли еще раз попытаться решить эту проблему?

4. Что это не работает? чего вы ожидаете и что происходит?

5. Я ожидал прочитать ввод пользователя и сравнить три нижеприведенных условия: if (randomNumber == guessNumber) (Поздравление) else if (randomNumber> guessNumber) (Извините, низкое число) else if (randomNumber < guessNumber) (извините, большое число)

Ответ №2:

Когда я запускаю код, он считывает все введенные пользователем данные. Однако он не обрабатывает его должным образом. Я предполагаю, что идея заключается в том, что пользователь может угадывать несколько раз — каждый раз, когда пользователю сообщается, является ли угаданное число слишком высоким или слишком низким, и он / она может соответствующим образом скорректировать предположение.

Проблема в опубликованной попытке заключается в том, что это код (есть несколько похожих фрагментов):

     else if (randomNumber > guessNumber )
    {for (int a = 1; a < 3; a  )

        {
        System.out.println("          Sorry Low number");
        guessNumber = reading.nextInt();

        }
        System.out.println("Sorry!  we can't help you any more, You failed *** The number was " randomNumber);
    }
  

поскольку этот цикл считывает следующее предположение пользователя, но не проверяет его на соответствие randomNumber, а просто продолжает выводить, что число слишком низкое.

Что вам нужно сделать, это переосмыслить свое решение. Как только пользователь сделал второе предположение, код должен снова проверить, равно ли оно randomNumber, меньше randomNumber или больше randomNumber . Таким образом, ваша проверка должна быть внутри цикла, а не циклов внутри проверки.

  while user has not made three guesses
      get next guess from user
      check guess and print appropriate messages