[英]Finding the max value in and Array
我看了其他問題,但不完全是我在這里面臨的問題,這是我目前擁有的代碼
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開始,因此當您進行循環和查找時,總是需要查找<
而不是<=
請閱讀本教程 。
編輯:
if(mark <= marks[i])
{
mark = marks[i];
currentArrayPosition = i;
}
將循環更改為
for(int i=0;i < names.length;i++)
而且,為什么需要將count
變量作為方法參數之一。 您沒有使用它。
你應該改變
for(int i=0;i <= names.length;i++)
至
for(int i=0;i < names.length;i++)
因為當變量i
等於names.length
時,您試圖訪問數組外部的項,因為數組的索引從0
開始到array's length - 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.