Как подвести итог ввода пользователя в arraylist? - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь создать программу, которая читает целые числа от пользователя и добавляет их в список. Это заканчивается, когда пользователь вводит 0. Программа затем печатает сумму в списке.

Мой код работает, но проблема в том, что значение суммы не суммируется правильно

public class Main {
        private static Scanner input = new Scanner (System.in);
    public static void main(String[] args) {

    ArrayList<Integer> test1 = new ArrayList<Integer>();
    System.out.println("Enter multiple numbers"); //if user enters =0; loop ends


    while (input.nextInt() != 0) {
        test1.add(input.nextInt());
        input.nextLine();
    }

    int total = 0;
    for(int x : test1){
        total+=x;
    }
    System.out.println(total);
}
}

1 Ответ

0 голосов
/ 04 мая 2020

Вы храните только каждое третье значение в вашем l oop. Это

while (input.nextInt() != 0) {
    test1.add(input.nextInt());
    input.nextLine();
}

должно быть что-то вроде

int value;
while ((value = input.nextInt()) != 0) {
    test1.add(value);
}

или

while (input.hasNextInt()) {
    int value = input.nextInt();
    if (value == 0) {
        break;
    }
    test1.add(value);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...