首页 > 解决方案 > 我的程序有问题或 netbeans 错误

问题描述

我正在做一个练习,你问我们以下问题: 练习 06:读取对应于两个 12 个数字元素的表格的数据,并将它们混合成表格的三分之一:3 个来自表 A,3 个来自 B,其他 3 个A,B的另外3个,等等。在制作代码时(据我说很好)我在netbeans中遇到错误(附照片)你能告诉我我的错误的原因是什么?我还是学生。提前非常感谢您的阅读(我附上了我的代码和错误的图像)。

package ejercicioarreglos_06;


import java.util.Scanner;

public class EjercicioArreglos_06 {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
     
        int tablaA[] = new int[12];
        int tablaB[] = new int[12];
        int contador = 0;
        boolean eleccion = true;
        int contA = 0, contB = 0;

        for (int i = 0; i < tablaA.length; i++) {
            System.out.print("Ingresa el valor " + (i + 1) + " de la tabla A: ");
            tablaA[i] = in.nextInt();

        }
        for (int j = 0; j < tablaB.length; j++) {
            System.out.print("Ingrese el valor " + (j + 1) + " de la tabla B: ");
            tablaB[j] = in.nextInt();

        }

        for (int k = 0; k < tablaB.length + tablaB.length; k++) {
            if (eleccion = true) {

                System.out.println(tablaA[contA]);
                contador++;
                contA++;
                if (contador > 2) {
                    eleccion = false;
                }
            } else {
                System.out.print(tablaB[contB]);
                contador--;
                contB++;
                if (contador < 0) {
                    eleccion = true;
                }
            }

        }

    }

}

在此处输入图像描述

标签: javanetbeans

解决方案


根据Javadoc

ArrayIndexOutOfBoundsException

抛出以指示已使用非法索引访问数组。索引为负数或大于或等于数组的大小。

ArrayIndexOutOfBoundsException

当我们提供超出允许访问数组中元素的限制的索引时,会发生异常(错误)。请记住,Java 索引从 0 开始,一直到元素数 -1。

注意公共类 ArrayIndexOutOfBoundsException 在 Java 平台的类层次结构中的位置:

-> java.lang.Object

--> java.lang.Throwable

---> java.lang.Exception

----> java.lang.RuntimeException

-----> java.lang.IndexOutOfBoundsException

------> java.lang.ArrayIndexOutOfBoundsException

这是一个示例,我们尝试使用无效索引访问数组的元素:

public class Test{
  public static void main(String args[]){
    // an array of five elements
    int[] values = {8, 98, 100, 3, 14};     

    // we will provide an invalid index
    System.out.println(values[5]); 

    System.exit(0);
  }
}

此代码编译正常。但是,当我们尝试运行它时,会收到以下错误消息:

Exception in thread "main" 
java.lang.ArrayIndexOutOfBoundsException: 4
  at Study.main(Test.java:7)

纠正这个错误的最合适的方法是提供一个真正在允许范围内的索引值。


推荐阅读