我已经查看了其他问题,但不完全是我在这里面临的问题, 这是我当前的代码
public class Qn3 {
public static void displayHighestMark(String[] names,int[] marks, int count)
{
int mark = 0;
int currentArrayPosition;
for(int i=0;i <= names.length;i++)
{
if(mark <= marks[i])
mark = marks[i];
currentArrayPosition = i;
}
System.out.println(name[i]+" with marks "+mark);
}
public static void main(String[] args)
{
String[] names = new String[]{"jack","hello","A","b","c","d"};// = new String[];
int[] marks = new int[]{1,2,3,8,5,6};
displayHighestMark(names,marks, 45);
}
}
所以基本上我试图在标记数组中找到最高标记。但我期待 ArrayIndexOutOfBoundsException
最佳答案
for(int i=0;i <= names.length;i++)
应该是
for(int i=0;i < names.length;i++)
因为您正在尝试获取 marks
对于超出范围的索引 ArrayIndexOutOfBoundsException
.数组索引从 0 开始,所以当你循环和查找时总是需要寻找 <
而不是 <=
请阅读此tutorial .
编辑:
if(mark <= marks[i])
{
mark = marks[i];
currentArrayPosition = i;
}
关于java - 查找和数组中的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13400144/