当前位置: 首页 > 知识库问答 >
问题:

嵌套for循环数组中缺少整数

百里秋月
2023-03-14
public class FunWithArrays{
    public static void main(String[] args){
        String nString = args[0];
        int n = Integer.parseInt(nString);
        int inputArray [] = {1,2,4};
        System.out.println(" The missing numbers are " );
        findMissingNum(n, inputArray);
    }
    public static void findMissingNum(int n, int[] inputArray){
        for (int i = 1; i <= inputArray.length; i++){
            int count = 0;
            for( int j = 0; j < n; j++){
                if(inputArray[j] == i){
                    count ++;
                }
                if (count == 0){
                    System.out.println(i);
                }
            }
        }   
    }
}
java.lang.ArrayIndexOutOfBoundsException: 3
at FunWithArrays.findMissingNum(FunWithArrays.java:17)
at FunWithArrays.main(FunWithArrays.java:9)

共有1个答案

皇甫德庸
2023-03-14

>

  • 首先,您应该从0遍历Inputarray的(inputarray.length-1)索引。这将摆脱ArrayIndexOutOfBoundsException,因为java数组索引从0开始,而不是从1开始。

    对于内循环,从0运行到n,因为n是最大值。

    第三,打印值应为inputarray[i]==j,而不是inputarray[j]==i。在您的例子中,我相信您有n>=4,所以它试图通过inputarray[j]调用访问inputarray[3]。这就是为什么你要得到这个超出界限的错误。

  •  类似资料:
    • 我试图弄清楚嵌套for循环是如何与JavaScipt中的多维数组一起工作的,但有一点让我有些困惑。以股票为例 这就是我所期望的结果123456。但是,如果我将数字添加到外部数组的末尾: 我仍然得到同样的输出1 2 3 4 5 6?我不明白为什么 输出是一个bcdyz,这是我所期望的。为什么字符串的行为会有所不同?

    • 和其他编程语言一样, Java 允许循环嵌套。如果把一个循环放在另一个循环体内,那么就可以形成嵌套循环。 嵌套循环既可以是 for循环嵌套 while 循环,也可以是 while 循环嵌套 do-while 循环 …… 即各种类型的循环都可以作为外层循环,也可以作为内层循环。 当程序遇到嵌套循环时,如果外层循环的循环条件允许,则开始执行外层循环的循环体,而内层循环将被外层循环的循环体来执行——只是

    • 我有一个嵌套的for循环,但是它会减慢一点处理速度,我如何才能使嵌套循环高效。我需要的是对于外循环的每个值,内循环继续其所有迭代。但是,我不认为它会像两个嵌套循环那样影响计算。我的第二个问题是,循环会影响速度还是会支持我的现象? 我的代码:

    • 问题内容: 因此,我正在研究UVA问题,并且我有4个嵌套循环来遍历多边形列表(每个多边形都包含一个点列表,其中每个点都包含一个整数x和y来表示其坐标,即,polygon [0]是一个点,其坐标为面[0] .x和面[0] .y)。 我试图减少程序中for循环的数量,以使其更高效并降低运行时间。我的代码如下: 我尝试通过使用itertools.product使其变得更加高效,如下所示: 无论如何,我的

    • 我得到的错误是“缺少return语句”,代码如下: 有人能帮帮我吗?多谢.

    • 我可以找到类似的问题,但我找不到我对这个特定案例期望的答案。 当我执行这段代码时,我得到一个编译错误,上面写着“缺少返回语句”。但是,据我所知,很明显,for循环中的代码将毫无疑问地执行,因为第一次,x=0。因此,对于这种特殊情况,没有理由不在for循环中执行代码。那么,为什么我们还需要在for循环之外声明一个额外的return语句呢?。