java - 在java中获取数组越界异常
问题描述
嘿伙计们,我不知道如何修复下面的代码,因为每次我运行它时都会出现一个区域超出范围的异常,任何帮助将不胜感激修复这个 thx。
int numberStudents = numberOfStudents();
System.out.println("");
int[] gradeOfStudent = gradeOfStudents(numberStudents);
方法如下
public static int[] gradeOfStudents(int numberStudents) {
Scanner input = new Scanner (System.in);
int[] grades = new int [numberStudents];
String[] name = new String[numberStudents];
for(int i = 0; i < numberStudents;) {
for(int j = 0; j < numberStudents; i++ ) {
System.out.print("Enter the name of the " + (i + 1) + " student: ");
name[i] = input.next();
System.out.print("Enter the " + (i + 1) + " student's grade: " );
grades[i] = input.nextInt();
}
}
return grades;
}
解决方案
您的gradeOfStudents(int) 方法中有第二个循环:
for(int j = 0; j < numberStudents; i++ ) {
如您所见,循环变量是“j”,但它在每个循环后更新“i”——因此不再为每个“i”调用第一个循环中的 i < numberStudents 检查——>它可能超出范围。
您似乎也没有将 'j' 用于任何事情,整个循环可能是多余的。
推荐阅读
- ios - 如何在收藏视图中实现视频播放?
- visual-studio-code - 为什么从 vs 代码扩展 XD 完成对 DSP 的编辑,而不是生成 CSS、JS 等?
- swift - 如何在 Swift 中以编程方式绘制李萨如曲线?
- azure-devops - 如何从 Azure devops Web 扩展访问 GraphRestClient?
- for-loop - 如何减少R中循环的执行时间?
- java - 如何检查另一个表的表中是否存在记录?
- jekyll - Jekyll 的 Open Graph 未按预期显示
- java - 无法从 Pojo 类反序列化 JSON 响应和访问类
- sas - SAS中的猫给了我空白
- api - How to create or update file using Github content api