// Método que debería devolver la suma de los números en un array hasta encontrar un número negativo // Entrada -> un array con 3, 8, -2, 4, 6 // Debería devolver 11 (3 + 8 ) public static int sumaHastaNegativo(int[] array) { int suma = 0; for (int i=2;i<array.length;i++) { if (array[i] >= 0) { break; }else{ suma += array[i]; } } return suma; } } dime porque esta mal el codigo EXPLICAME LA CORRECCION
El código que proporcionas tiene varios problemas: 1. **Condición de parada incorrecta**: La condición `if (array[i] >= 0)` es incorrecta porque está rompiendo el bucle cuando encuentra un número positivo, en lugar de romperlo cuando encuentra un número negativo. Debería ser `if (array[i] < 0)`. 2. **Índice de inicio incorrecto**: El bucle `for` comienza desde el índice 2 (`i=2`), lo que significa que se saltará el primer elemento del array. Debería comenzar desde el índice 0 (`i=0`). 3. **No se está sumando el primer elemento**: Aunque el bucle comienza desde el índice 0, la condición `if (array[i] >= 0)` hace que se salte el primer elemento si es positivo. Debería sumar el primer elemento siempre que sea positivo. Aquí te dejo la corrección del código: ```java public static int sumaHastaNegativo(int[] array) { int suma = 0; for (int i = 0; i < array.length; i++) { if (array[i] < 0) { break; } else { suma += array[i]; } } return suma; } ``` Con esta corrección, el código funcionará correctamente y devolverá la suma de los números positivos en el array hasta encontrar un número negativo.