Java การบ้านง่ายๆ แต่ไม่เข้าใจครับ

โจทย์ รับค่า arrayแค่ 5 ตำแหน่ง โดยรับค่าจากแป้นพิมพ์ แล้วเช็คว่าค่าใดมากที่สุด และอยู่ตำแหน่งที่เท่าไหร่
จากโคดที่ลองศึกษาและลองทำดูครับ 
-->
package javaapplication1;
import java.util.Scanner;
public class JavaApplication1 {
    public static void main(String[] args) {
      int i,j,n=5;
      int[] num;
      int max;
      Scanner scan = new Scanner(System.in);
      num = new int[n] ;
        for(i=0;i<num.length;i++)
        {
            System.out.print("Input Number["+(i+1)+"] = ");
            num= scan.nextInt();
        }
        max=num[1];
        for(j=2;j<num.length;j++)
        {
            if(max<num[j])
            max = num[j];
        }
        System.out.print("Max = "+ max +" Location = "+ num[j] );
    }  
}
--<
Answer
Input number 1: 1
Input number 2: 100
Input number 3: 2
Input number 4: 3
Input number 5: 4
 ArrayIndexOutOfBoundException : 5

**************************
มีใครพอรู้ หรือพอทำได้ ช่วยอธิบายหน่อยนะครับ 
ขอบคุณครับ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่