我一直在尝试在同一个数组中添加一些数字。我怎么会收到 java.lang.ArrayIndexOutOfBoundsException: 5 错误。我已经尝试过
for(int 1 : array)
在我这样做之后,我得到了错误 java.lang.ArrayIndexOutOfBoundsException: 12
我应该如何尝试解决这个问题?我是游戏开发的一年级学生,所以当你试图向我解释时请记住这一点。谢谢你。
我的完整代码是:
package com.company;
导入 java.util.Scanner;
公共类 BsaMonitor2 {
public static void main(String[] args) {
int totalStudiePunt = 0;
String[] vakNamen = {"FYS", //12 studie punten
"Programming", "Databases", "Game Basics", "User Interaction", //3 studie punten
"Personal Skills", "Project Skills", "Wiskunde", //2 studie punten
"Nederlands", "English"}; //1 studie punt
double[] cijfers = new double[10];
int[] studiePunten = {12, 3, 2, 1, 0};
Scanner input = new Scanner(System.in);
for (int iVak = 0; iVak < 10; iVak++) {
while (cijfers[iVak] <= 0.9 && cijfers[iVak] >= 10.1) {
System.out.print(vakNamen[iVak] + ": ");
cijfers[iVak] = input.nextDouble();
}
}
for (int iVak = 0; iVak < 10; iVak++) {
while (cijfers[iVak] <= 1 || cijfers[iVak] >= 10) {
System.out.print(vakNamen[iVak] + ": ");
cijfers[iVak] = input.nextDouble();
}
}
for (int iCijfers = 0; iCijfers < 1; iCijfers++) {
if(cijfers[iCijfers] >= 5.5) {
System.out.printf("Vak/project: %-17s Cijfer %2.1f Studiepunten: %d \n", vakNamen[iCijfers], cijfers[iCijfers], studiePunten[0]);
}
else{
System.out.printf("Vak/project: %-17s Cijfer %2.1f Studiepunten: %d \n", vakNamen[iCijfers], cijfers[iCijfers], studiePunten[4]);
}
}
for (int iCijfers = 1; iCijfers < 5; iCijfers++) {
if(cijfers[iCijfers] >= 5.5) {
System.out.printf("Vak/project: %-17s Cijfer %2.1f Studiepunten: %d \n", vakNamen[iCijfers], cijfers[iCijfers], studiePunten[1]);
}
else{
System.out.printf("Vak/project: %-17s Cijfer %2.1f Studiepunten: %d \n", vakNamen[iCijfers], cijfers[iCijfers], studiePunten[4]);
}
}
for (int iCijfers = 5; iCijfers < 8; iCijfers++) {
if(cijfers[iCijfers] >= 5.5) {
System.out.printf("Vak/project: %-17s Cijfer %2.1f Studiepunten: %d \n", vakNamen[iCijfers], cijfers[iCijfers], studiePunten[2]);
}
else{
System.out.printf("Vak/project: %-17s Cijfer %2.1f Studiepunten: %d \n", vakNamen[iCijfers], cijfers[iCijfers], studiePunten[4]);
}
}
for (int iCijfers = 8; iCijfers < 10; iCijfers++) {
if(cijfers[iCijfers] >= 5.5) {
System.out.printf("Vak/project: %-17s Cijfer %2.1f Studiepunten: %d \n", vakNamen[iCijfers], cijfers[iCijfers], studiePunten[3]);
}
else{
System.out.printf("Vak/project: %-17s Cijfer %2.1f Studiepunten: %d \n", vakNamen[iCijfers], cijfers[iCijfers], studiePunten[4]);
}
}
for (int count = 0; count < 10; count++) {
totalStudiePunt += studiePunten[count];
}
System.out.println(totalStudiePunt);
}
}
在循环 for 循环时,不要在中间表达式中硬记录数字,而是这样做,
for (int count = 0; count < studiePunten.length; count++) {
totalStudiePunt += studiePunten[count];
}
这样你就永远不会得到 ArrayIndexOutOfBoundException
此外,您的代码有更多的逻辑问题。这个内部while循环,
while (cijfers[iVak] <= 0.9 && cijfers[iVak] >= 10.1)
它永远不会通过,因为一个数字不能小于 0.9 也不能大于 10.1
你需要调试你的程序并修复逻辑,你可以做得最好。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句