简体   繁体   English

java-错误不兼容的类型:意外的返回值-遍历列表

[英]java - error incompatible types: unexpected return value - iterating through a list

I am asked to write code that will display the total sum of the integers in the numbers list. 我被要求编写代码,以显示数字列表中整数的总和。 I am to make use of the total variable that has already been declared for me and use a for loop to iterate through the elements of the list. 我要利用已经为我声明的总变量,并使用for循环遍历列表中的元素。

The issue is I keep getting the error incompatible types: unexpected return value.' 问题是我不断收到错误不兼容的类型:意外的返回值。 When I try changing void in the main method to int, I get the error 'void type not allowed here.' 当我尝试将main方法中的void更改为int时,出现错误“此处不允许使用void类型”。 Any ideas on how to fix this? 有想法该怎么解决这个吗?

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);

    }
}

Remove the return line: 删除回车线:

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

Your main has return type void and you are returning an int . 您的main的返回类型为void并且您正在返回一个int

You can`t set return type for main() metod. 您不能为main()方法设置返回类型。 It should be void. 它应该是无效的。 You can create new static metod 您可以创建新的静态方法

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

After you can call this metod from main and other static metods. 之后,您可以从主要和其他静态方法中调用此方法。

Remove print around System.out.println(sum) and remove return sum 删除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);

    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM