我正在尝试验证输入值,只传递可被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));
答案 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);
}