首页 > 解决方案 > 线程“主”java.lang.ArrayIndexOutOfBoundsException 中的异常:(您输入的数字为负数)

问题描述

当我输入任何 amountNumber > 4 时,它会出现:

线程“主”java.lang.ArrayIndexOutOfBoundsException 中的异常:finder_pairs.finder_program_main.main(finder_program_main.java:19) 处的(我输入的数字为负数)

            System.out.println("How many numbers will you input?");
    Scanner amount = new Scanner(System.in);
    int amountNumbers = amount.nextInt();
    if (amountNumbers < 4)
        System.out.println("Error you need to input at least 4 numbers");
    System.out.println("Write the numbers: ");
    Scanner numbers = new Scanner(System.in);
    int repetition = amountNumbers;
    do {
    int[] num = new int[amountNumbers];
    int num1 = num[0-amountNumbers];
    int num2 = num[1-amountNumbers];
    int num3 = num[0-amountNumbers];
    int num4 = num[1-amountNumbers];
    if (num1 + num2 == num3 + num4)
        System.out.println(num1 + " + " + num2 + "is equal to " + num3 + " + " + num4);
    repetition-- ;
    }while(repetition > 0);
    amount.close();
    numbers.close();
    }
}

标签: javaarraysindexoutofboundsexception

解决方案


在行中:

int num1 = num[0-amountNumbers];

您已尝试调用0-amountNumbers 您指定的索引必须为 4 或更大。这将意味着这将始终导致indexoutofboundserror零减去正数将为零,这不是有效的array索引。我不确定你打算用这条线做什么,但你必须确保你调用的索引是 0 或更大


推荐阅读