【发布时间】:2022-12-18 18:32:00
【问题描述】:
我想检查一个无序数组中的数字,如果该数字不包含在数组中我想打印它,如果它包含我不想打印它, 当我尝试我的代码时,我认为我可以将数组与有序数组进行比较,但它打印的是包含的数字而不是未包含的数字我应该怎么做才能修复它? (数组应该从1开始)
public class Test {
public static void main(String[] args) {
//my max number
int max=5;
//my unordered array
int[] A={1,2,3,5};
//creating the ordered array
int[] B=new int[max];
int num=1;
for (int i = 0; i < max; i++) {
B[i]=num;
num++;
}
//checking
for (int i = 0; i < A.length; i++) {
for (int j = 0; j < B.length; j++) {
if (A[i]==B[j]) {
System.out.println(B[j]);
}
}
}
}
}
【问题讨论】:
-
对于
B、B[j] == j + 1中的所有j。所以你的比较实际上是if (A[i] > 0 && A[i] <= max)(使内循环变得毫无意义)。您需要遍历整个数组以检查其中是否存在数字,但它会是后那个检查循环你会知道你寻找的数字是否在数组中。如果您愿意编写新方法,boolean isInArray(int[] array, int numToFind) {...}可能有助于简化事情。