(Java)在有条件的情况下使用 while 函数
(Java)Using while function with condition
我正在制作一个程序,将用户输入的所有数字相加,直到出现 0。当 0 作为输入时,我想显示所有保存的数字。当我 运行 程序时,我得到了“java.lang.OutOfMemoryError: Java heap space”这个错误,我想知道哪一部分是错误的。
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ArrayList<Integer> myList = new ArrayList<Integer>();
int a = scanner.nextInt();
while(a!=0) {
myList.add(a);
}
for(int i=0;i<myList.size();i++) {
System.out.println(myList.get(i));
}
您需要继续从标准输入读取新的数字。否则,a
不会改变值,并会导致上述错误:
while (a !=0) {
myList.add(a);
a = scanner.nextInt();
}
恕我直言,for
循环更合适:
for (int a = scanner.nextInt(); a != 0; a = scanner.nextInt()) {
myList.add(a);
}
这具有将 a
的范围限制在循环中的理想效果(应该始终尽可能限制所有内容的范围)。
我正在制作一个程序,将用户输入的所有数字相加,直到出现 0。当 0 作为输入时,我想显示所有保存的数字。当我 运行 程序时,我得到了“java.lang.OutOfMemoryError: Java heap space”这个错误,我想知道哪一部分是错误的。
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ArrayList<Integer> myList = new ArrayList<Integer>();
int a = scanner.nextInt();
while(a!=0) {
myList.add(a);
}
for(int i=0;i<myList.size();i++) {
System.out.println(myList.get(i));
}
您需要继续从标准输入读取新的数字。否则,a
不会改变值,并会导致上述错误:
while (a !=0) {
myList.add(a);
a = scanner.nextInt();
}
恕我直言,for
循环更合适:
for (int a = scanner.nextInt(); a != 0; a = scanner.nextInt()) {
myList.add(a);
}
这具有将 a
的范围限制在循环中的理想效果(应该始终尽可能限制所有内容的范围)。