Estoy tratando de sumar todos los dígitos de una matriz con for loop y enhanced loop. El for loop está funcionando bien pero el enhanced loop está devolviendo un out of bounds error.

Sigue el código:

import java.util.*;

public class test
{     
  public static void main(String[]args)
  {
     //This code sums all of the values in an array with a for loop

     int count = 0;

     int[] array = {1,2,3,4,5,6,7,8,9,10};        

     for(int item = 0; item<array.length; item++)
        {
           count += array[item];
        }

      System.out.println(Arrays.toString(array) + "\nCount = " + count);
//////////////////////////////////////////////////////////////////////////////
      //This code is supposed to sum all of the digits in an array with a enhanced loop 
      int count2 = 0;

     int[] array2 = {1,2,3,4,5,6,7,8,9,10};        

     for(int item : array2)
        {
           count2 += array2[item];
        }

      System.out.println(Arrays.toString(array2) + "\nCount = " + count2);            
  }
}
-2
Isaac Stewart 2 dic. 2016 a las 16:53
En java, item representa el valor, esto no es como javascript donde item representaría el índice.
 – 
AxelH
2 dic. 2016 a las 17:45

1 respuesta

La mejor respuesta

El bucle mejorado no cuenta la indexación, extrae el elemento en sí. Entonces todo lo que necesitas es:

for(int item: array2){
  count2 += item;
}
1
SarTheFirst 2 dic. 2016 a las 17:58
Muchas gracias por responder @SarTheFirst. Tu código funcionó. Nadie en mi clase de Ciencias de la Computación AP sabía la respuesta.
 – 
Isaac Stewart
2 dic. 2016 a las 18:00