我的代码中有什么会导致我的 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();
}
}
我不知道是什么导致我的 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();
}
}