带有ArrayList的扫描仪

时间:2017-10-04 11:25:48

标签: java arraylist java.util.scanner

在这个程序中,我打算写一下:它应该只通过扫描仪从用户那里获得正数,如果它们是肯定的 - 它需要将它们添加到'列表中。数组列表。 出于某种原因,当用户添加第一个数字时,它不会添加第一个数字,而只会添加第二个数字(并且在每个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();
    }
}

*

2 个答案:

答案 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();
    }
}