簡體   English   中英

在和數組中找到最大值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM