如何只输入整数,这个整数只会以零结尾?

时间:2015-01-08 20:10:02

标签: java loops if-statement try-catch

我正在尝试验证输入值,只传递可被10整除的整数。下面的代码失败。

 public static void main(String args[]) {
    Scanner scan =new Scanner(System.in);
    ArrayList<Integer> liste = new ArrayList<Integer>(); // I have filled my array with integers
   int x=scan.nextInt();
int y=x%10;
do{
if(y==0){
liste.add(x);}
else if(y!=0){
System.out.println("It is not valid"); continue;
} 
else 
{System.out.println("Enter only integer"); continue;
}

}while(scan.hasNextInt()); }

        System.out.println(liste);
        System.out.println("Your largest value of your arraylist is: "+max(liste));

1 个答案:

答案 0 :(得分:1)

您正在拨打scan.nextInt()两次。每次调用它时,它都会从输入中读取另一个int。因此,如果您的输入类似于

10
5
13

然后10将通过scan.nextInt()%10==0检查,然后5将添加到列表中。首先将scan.nextInt()的结果存储在变量中,因此该值不会改变。

而不是

if(scan.nextInt()%10==0){
liste.add(scan.nextInt());}

DO

int num = scan.nextInt();
if(num%10 == 0){
    liste.add(num);
}