Подходящий метод для объявления переменных класса Array? - PullRequest
0 голосов
/ 04 мая 2020

Я новичок в изучении массивов и хочу знать, как объявлять переменные с входными данными сканера, используя метод массива. Например, в обычном сценарии, допустим, я хочу найти среднее значение обычных входных данных сканера, я бы сделал что-то вроде этого:

int num1 = keyboard.nextInt();
int num2 = keyboard.nextInt();
int Average = (num1+num2)/2;
System.out.print(Average);

Это самый простой метод, с которым я хорошо знаком, но Я хочу, чтобы та же логика / метод применялась к классу Array.

Задача состоит в том, чтобы ввести целое число от пользователя, представляющее, сколько еще целых чисел собираются ввести. Затем пользователь вводит остальные целые числа. Программа выводит среднее значение чисел, округленное до одного десятичного знака. Также это очень простая задача, но я не могу объявить переменную Среднее на основе приведенного ранее примера с использованием обычных входных данных сканера.

Мой код:

else if (option == 2){
    int[] numbers = new int[keyboard.nextInt()];
        for (int x = 0; x < numbers.length; x++){
            numbers[x] = keyboard.nextInt(); //need to now declare an average variable
        }
    int Average = //What would I put here?
        for (int x = 0; x < numbers.length; x++){
            System.out.println(Average); //Average needs to be printed
        }
    }

1 Ответ

3 голосов
/ 05 мая 2020

Вот простое решение ...

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int result = sc.nextInt();

    while (true) {
        String next = sc.next();

        if (next.equals("done") || next.equals("calculate")) {
            System.out.println(result);
            break; // Exit Loop.
        } else if (next.equals("+")) {
            result += sc.nextInt();
        } else if (next.equals("-")) {
            result -= sc.nextInt();
        } else {
            System.out.println("Unrecognized Input");
            break; // Exit Loop.
        }
    }
}

Это требует ввода хотя бы одного числа. Также обратите внимание, что этот тип решения будет работать только для левоассоциативных операторов. (К счастью, и +, и - есть) Например, мы не смогли добавить показатели к этому алгоритму, так как результат вычисляется в левоассоциативном поместье.

...