在这个程序中,我打算写一下:它应该只通过扫描仪从用户那里获得正数,如果它们是肯定的 - 它需要将它们添加到'列表中。数组列表。 出于某种原因,当用户添加第一个数字时,它不会添加第一个数字,而只会添加第二个数字(并且在每个while循环中它都会像这样运行)。
有人可以帮忙吗? 谢谢! : - )
import java.util.ArrayList;
import java.util.Scanner;
import java.util.ArrayList;
public class Second_EX_Advanced_2 {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
System.out.println("Please enter a positive number ... ");
Scanner INPUT = new Scanner(System.in);
while (INPUT.nextInt() > 0) {
list.add(INPUT.nextInt());
System.out.println(list);
}
INPUT.close();
}
}
*
答案 0 :(得分:1)
你实际上是在两次输入
while (INPUT.nextInt() > 0) { //first time here
list.add(INPUT.nextInt()); //second time here
System.out.println(list);
}
将其更改为
int n;
while ((n=INPUT.nextInt()) > 0) { //first time here
list.add(n); //second time here
System.out.println(list);
}
现在它应该可以正常工作;
答案 1 :(得分:0)
错误在你的while循环中:
while (INPUT.nextInt() > 0) {
list.add(INPUT.nextInt());
System.out.println(list);
}
您正在扫描第一个整数并添加第二个整数,如上所述。
您可以使用工作代码:
import java.util.ArrayList;
import java.util.Scanner;
import java.util.ArrayList;
public class Second_EX_Advanced_2 {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
System.out.println("Please enter a positive number ... ");
Scanner INPUT = new Scanner(System.in);
int num;
while ((num = INPUT.nextInt()) > 0) {
list.add(num);
System.out.println(list);
}
INPUT.close();
}
}