java - 我的程序有问题或 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;
}
}
}
}
}
解决方案
根据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)
纠正这个错误的最合适的方法是提供一个真正在允许范围内的索引值。
推荐阅读
- android - 如何将pdf文件发送到android studio中的服务器
- python - Pycharm 中带有 pytest 运行/调试日志的 ##teamcity[... 消息在哪里?
- c# - 将 UWP 应用置于当前窗口的前面
- excel - 从 Excel VBA 访问共享 Outlook 收件箱
- javascript - 比较 React.memo 组件中的 prevProps 和 nextProps 以防止不必要的重新渲染,但这很有趣
- javascript - 为什么返回错误在 try-catch 中不起作用?(JavaScript)
- amazon-web-services - VPC 内的 lambda 能否由 VPC 外的 SNS 或 SQS 触发?
- amazon-web-services - REST API 的 CloudFormation 堆栈错误不包含任何方法
- android - 有没有办法执行类似于`whereEqualToAny(field, list/array)`的Firestore查询?
- javascript - 如何更改窗口调整大小的状态?