Java 方法返回的不重新启动问题

Java 方法返回的不重新启动问题,java,Java,我编译并执行以下代码片段并打印 A collection coming up. 60 但我不明白为什么会有人来收集。打印一次 import java.util.ArrayList; import java.util.Collection; public class RQ400_100 { public static void main(String[] args) { int sum = 0; for (int i : makeCollection(

我编译并执行以下代码片段并打印

A collection coming up.
60
但我不明白为什么会有人来收集。打印一次

import java.util.ArrayList;
import java.util.Collection;

public class RQ400_100 {

    public static void main(String[] args) {
        int sum = 0;
        for (int i : makeCollection())
            sum += i;
        System.out.println(sum);
    }

    static Collection<Integer> makeCollection() {
        System.out.println("A collection coming up.");
        Collection<Integer> collection = new ArrayList<Integer>();
        collection.add(10); 
        collection.add(20); 
        collection.add(30);
        return collection;
    }
}

基本上,代码是这样运行的:

第一个main被调用,它调用makeCollection。调用makeCollection时,它会打印“即将出现的集合”,然后创建集合并返回它。然后我们返回main并迭代新创建的集合并计算其总和60。然后主要打印“60”

结果是makeCollection和main分别计算一次和一次,最终结果是打印

A collection coming up.
60

请格式化您的代码。很难读取循环条件内的所有left RightedMakeCollection,它不会在循环期间每次都执行。如果你希望它打印多次,你需要把打印语句放在循环中,或者用另一种方式来编码代码。在那里,我已经为你格式化了你的发布代码,但是请你考虑一下自己做这些问题。阅读别人的代码并不容易,因此没有必要让它变得更难。祝你好运。你希望它被打印多少次?3.