Java - ошибки несовместимых типов: неожиданное возвращаемое значение - итерации по списку - PullRequest
0 голосов
/ 20 марта 2019

Меня просят написать код, который будет отображать общую сумму целых чисел в списке чисел.Я должен использовать итоговую переменную, которая уже была объявлена ​​для меня, и использовать цикл for для итерации по элементам списка.

Проблема в том, что я продолжаю получать сообщения о несовместимых типах ошибок: неожиданное возвращаемое значение«.Когда я пытаюсь изменить void в методе main на int, я получаю ошибку «тип void здесь не разрешен».Есть идеи как это исправить?

import java.util.ArrayList;

public class ArrayListTestProgram {
    public static void main(String args[]) {
        int                     total = 0;
        ArrayList<Integer>      numbers;
        numbers = new ArrayList<Integer>(); 
        numbers.add(1);
        numbers.add(45);
        numbers.add(23);
        numbers.add(87);
        numbers.add(89);
        numbers.add(213); 
        System.out.println("The ArrayList looks like this: " + numbers);
        System.out.println("It has " + numbers.size() + " elements in it");
        System.out.println("The 5th element in it is: " + numbers.get(4));
        int sum = 0;


        for (int i = 0; i < numbers.size(); i++) {
          sum += numbers.get(i);
          return sum;

        }
        System.out.println(sum);

    }
}

Ответы [ 3 ]

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

Удалить обратную строку:

for (int i = 0; i < numbers.size(); i++) {
    sum += numbers.get(i);
//  return sum;
}

Ваш основной имеет тип возврата void, и вы возвращаете int.

0 голосов
/ 20 марта 2019

Удалить отпечаток вокруг System.out.println(sum) и удалить return sum

import java.util.ArrayList;

public class ArrayListTestProgram {
    public static void main(String args[]) {
        int total = 0;
        ArrayList<Integer> numbers;
        numbers = new ArrayList<Integer>();
        numbers.add(1);
        numbers.add(45);
        numbers.add(23);
        numbers.add(87);
        numbers.add(89);
        numbers.add(213);
        System.out.println("The ArrayList looks like this: " + numbers);
        System.out.println("It has " + numbers.size() + " elements in it");
        System.out.println("The 5th element in it is: " + numbers.get(4));
        int sum = 0;


        for (int i = 0; i < numbers.size(); i++) {
            sum += numbers.get(i);

        }
        System.out.println(sum);

    }
}
0 голосов
/ 20 марта 2019

Вы не можете установить тип возврата для метода main (). Это должно быть пустым. Вы можете создать новый статический метод

public static giveMeSumOfList(List<Integer> list){
int sum = 0; 
for (int i = 0; i < list.size(); i++) {
          sum += numbers.get(i);
          return sum;
        }

После того, как вы можете вызвать этот метод из основного и других статических методов.

...