salve avrei questo programma

codice:
import javax.swing.JOptionPane;


public class sommaalternata {
float []num = new float[5];
float somma=0;
float sottrazione=0;
	public void inserimento(){
		
		for (int i =0; i<5;i++){
		 num[i] = Float.parseFloat(JOptionPane.showInputDialog("inserire un numero"));
		}
	}
	public float[] getarray(){
	return num;
	}
	
	  public void calcoli(){
		for (int i=0; i<5; i++){
			for (int k=0; k<5;i++){
			sottrazione = num[i] - num[k]; 
			}
		}
			
	}
	public float getsottrazione(){
		return sottrazione;
	}
	
}
e questo il main

codice:
import javax.swing.JOptionPane;
public class sommalaternatamain {

	public static void main(String[] args) {
		sommaalternata alter = new sommaalternata();
		alter.inserimento();
		alter.calcoli();
		float sottraz = alter.getsottrazione();
		System.out.println(sottraz);
		for (int i=0; i<5;i++){
		System.out.println(alter.num[i]);
		}

	}

}
mi da questo errore

codice:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
	at sommaalternata.calcoli(sommaalternata.java:21)
	at sommalaternatamain.main(sommalaternatamain.java:7)
ho provato a vedere solo l'array senza il metodo calcoli e funziona quindi l'errore dovrebbe essere nei cicli ma non riesco a capire proprio cosa sta di sbagliato per fare uscire un outofbound