Ciao a tutti!!! ho un problema quando invoco un metodo statico!!vi posto il codice e poi spiego cosa dovrebbe fare!!
il metodo getPari() prende come parametro un'array di interi e restituisce un nuovo array composto solo dagli elementi in posizione pari, il metodo sommaAlterna() prende come parametro un'array di interi e restituisce la somma alterna degli elementi dell'array(es:dato l'array [3,6,8,23,4] restiuisce 3-6+8-23+4 = -14)codice:import java.util.Random; import jbook.util.Input; public class MetodiStatici5 { public static int [] getPari(int [] a){ int count=0; for(int i=0; i<a.length;i++){ if(a[i]%2==0){ count++; } } int [] ris= new int [count]; for(int i=0; i<a.length-1; i++){ if(a[i]%2==0){ ris[i]=a[i]; // riga 21 ERRORE } } return ris; } public static int sommaAlterna(int []a){ int ris=0; int [] check=new int [a.length]; for(int i=0; i<a.length;i++){ if(i%2==0){ check[i]=a[i]; }else{ check[i]=-a[i]; } } for(int i=0;i<check.length;i++){ ris+=check[i]; } return ris; } public static void main (String [] args){ int n=Input.readInt("inserisci lunghezza array"); int [] a=new int [n]; Random generatore=new Random(10); for(int i=0;i<a.length;i++){ a[i]=generatore.nextInt(10); } for(int i=0;i<a.length;i++){ System.out.print(a[i]+" "); } for(int i=0;i<(getPari(a)).length;i++){ //riga 61 ERRORE System.out.print(getPari(a)[i]+" "); } System.out.println(sommaAlterna(a)); } }
e nel main si prende in input un numero n e si crea un'array con n numeri interi random utilizzando java.util.Random, e invoco i metodi
l'errore ke mi da eclipse è : Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
at provaCompitoLaboratorio.MetodiStatici5.getPari(Met odiStatici5.java:21)
at provaCompitoLaboratorio.MetodiStatici5.main(Metodi Statici5.java:61)
non capisco proprio perchè mi dia questo tipo di errore!!dovrebbe andare tranquillamente!!

 
			
			 
					
					
					
						 Rispondi quotando
  Rispondi quotando