我的代码中有什么会导致我的 for 循环过早终止?我在循环中的某个地方缺少 "i" 吗?

What in my code would cause my for loop to terminate prematurely? Am I missing "i" somewhere within the loop?

我不知道是什么导致我的 for 循环终止。我刚刚尝试测试它,它只运行打印功能。然后它就终止了。我不明白为什么它会这样做。

import java.util.Scanner;
import java.util.ArrayList;
public class Test092 {

    public static void main(String[] args) {
        Scanner usersVal = new Scanner(System.in);
        ArrayList<Integer> arrayList = new ArrayList<>();

        int valAdd = 0;
        System.out.println("Please provide a list of numbers");

        for (int i = 0; i < arrayList.size(); i++) {

            valAdd = Integer.valueOf(usersVal.nextInt());

            if (valAdd == -1) {
                break;
            }else {
                arrayList.add(valAdd);
            }

        }

    }
}

问题是您的 arrayList 中没有任何元素。因此,当您的循环检查 i < arrayList.size() 时,循环不会 运行 (因为 arrayList.size() 是 0)

试试这个:

public static void main(String [] args) {
    try (Scanner usersVal = new Scanner(System.in)) {
        List<Integer> arrayList = new ArrayList<>();
        System.out.println("Please provide a list of numbers");

        int valAdd = usersVal.nextInt();
        while (valAdd != -1) {
            arrayList.add(valAdd);
            valAdd = usersVal.nextInt();
        }
        System.out.println(arrayList);
    } catch (Exception e) {
        e.printStackTrace();
    }
}