这是我在即将到来的考试前的练习,我正在尝试让用户输入一个数字。然后将数组array1中所有小于用户输入数字的元素放入新的ArrayList中。接着,我想要打印出该ArrayList中最大的数字。如果用户输入的数字比array1中的所有数字都小,则返回-1。
这是我的代码,但当我输入920时,它仍然返回-1,我认为在查找ArrayList中最大数字的代码中有问题。你们能告诉我错在哪里吗?
static Scanner sc = new Scanner(System.in);
static int[] array1 = {900, 885, 989, 1000, 1500, 1243, 999, 915};
public static int blabla(int[] a, int b) {
Integer d = -1;
ArrayList<Integer> al = new ArrayList<Integer>();
for (int i = 0; i < array1.length; i++) { // this is to find all numbers in array1 that is below user's number, and add it to the ArrayList
if (b > array1[i]) {
al.add(array1[i]);
} // if
} // for
outerloop: // and this function below is to find maximum number in ArrayList
for (int g = (al.size()-1); g == 0; g--) {
for (int j = 0; j <=(g-1); j++) {
if (al.get(j) > al.get(g)) {
break;
}
else if(j == (g-1)) {
if (al.get(g) > al.get(j)){
d = al.get(g);
break outerloop;
}
}
} //for^2
} // for
return d;
} // priceisright