У меня есть некоторые проблемы с моим кодом Java. Он не будет работать, когда сообщается о разнице между положительным и отрицательным числом в цикле - PullRequest
0 голосов
/ 20 марта 2019

Проблема для решения

  • Напишите программу под названием MyWhiley1, которая просит пользователя ввести положительное целое число.
  • Когда пользователь вводит отрицательное значение, программа пишет ERROR и запрашивает другое значение.
  • Когда пользователь вводит 0, это означает, что было введено последнее значение и программа должна записать среднее из целых положительных чисел.
  • Если число введенных значений равно нулю, программа пишет «НЕТ» СРЕДНЯЯ».

Но у меня есть некоторые ошибки, мой код не работает должным образом, если я набираю положительное число, а затем отрицательное число ничего не происходит.

public class MyWhiley1 {
    public static void main(String[] arg) {
        int sum = 0, list = 0;
        Scanner reader = new Scanner(System.in);
        System.out.println("Type a postive integer if you enter zero the list is compelete");
        int number = reader.nextInt();
        do {
            if (number > 0) {
                sum += number;
                list++;
            } else if (number < 0) {
                System.out.println("ERROR type in a postive integer");

            }
            reader.close();
        } while (number != 0);

        if (list != 0) {
            System.out.println("Average is: " + sum / list);
        } else
            System.out.println("NO average");
    }
}

Ответы [ 2 ]

1 голос
/ 20 марта 2019

У вас есть две проблемы, вы не читаете число в цикле и закрываете ридер, находясь в цикле:

int number = 0;

do
{
    number = reader.nextInt();

    if (number>0)
    {
        sum+=number;
        list++;
    }
    else if (number<0)  
    {
        System.out.println("ERROR type in a postive integer");

    }

}while (number!=0);
reader.close();
0 голосов
/ 20 марта 2019

Похоже, что здесь происходит то, что вы случайно поместили вызов reader.close() внутри цикла while, поэтому сканер закрывается после первой итерации цикла, независимо от того, что происходит.Попробуйте поставить reader.close сразу после окончания цикла while;это должно решить проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...