Как исправить ошибку для возврата в логическом методе - PullRequest
0 голосов
/ 23 апреля 2020

Я создаю программу, которая запрашивает у пользователя предполагаемое число. Затем программа определяет, находится ли предполагаемое число в диапазоне двух случайных чисел. У меня есть publi c stati c boolean, который показывает ошибку, даже если у меня есть возврат (в пределах if и else if). Не знакомы с методами и не уверены, как решить, как я могу это исправить? Heads up Я не могу создать второе логическое значение, обе проверки должны остаться в displayGuessResults, поскольку это то, что требуется от программы. Кроме того, код не завершен, так как я не справился с вызовом в main, я просто хотел решить эту проблему, прежде чем продолжить, спасибо!

Код (не включая main, потому что у меня еще ничего нет):

public static int getValidGuess(Scanner get)
    {
       int num;

        System.out.print("Guess a number: --> ");
        num = get.nextInt();

        return num;
    } // getValidGuess end

    public static boolean displayGuessResults(int start, int end, int num)
    {
         int n1, n2;
         Random gen = new Random();

        n1 = gen.nextInt(99) + 1;
        n2 = gen.nextInt(99) + 1;



        if(n1 < n2)
        {
            start = n1;
            end = n2;
        } // if end
        else
        {
            start = n2;
            end = n1;
        } //else end

        if(num > start && num < end)
        {
            System.out.println("\nThe 2 random numbers are " + start +
                    " and " + end);
            System.out.println("Good Guess!");

            return true;
        }
        else if (num < start || num > end)
        {
            System.out.println("\nThe 2 random numbers are " + start +
                    " and " + end);
            System.out.println("Outside range.");

            return false;
        }


    } // displayGuessResults end

Ответы [ 2 ]

0 голосов
/ 23 апреля 2020

Что если num == start || num == конец? Вы не рассматривали это, следовательно, для этого случая он не будет входить в if / else if. и, следовательно, вам нужно справиться с этим

0 голосов
/ 23 апреля 2020

В конце метода отсутствует оператор return,

public static boolean displayGuessResults(int start, int end, int num)
    {
         int n1, n2;
         Random gen = new Random();

        n1 = gen.nextInt(99) + 1;
        n2 = gen.nextInt(99) + 1;



        if(n1 < n2)
        {
            start = n1;
            end = n2;
        } // if end
        else
        {
            start = n2;
            end = n1;
        } //else end

        if(num > start && num < end)
        {
            System.out.println("\nThe 2 random numbers are " + start +
                    " and " + end);
            System.out.println("Good Guess!");

            return true;
        }
        else if (num < start || num > end)
        {
            System.out.println("\nThe 2 random numbers are " + start +
                    " and " + end);
            System.out.println("Outside range.");

        }

       return false;
    }
...