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

问题描述 投票:0回答:2

我不知道是什么导致我的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);
            }

        }

    }
}
java for-loop terminate
2个回答
3
投票

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


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();
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.