language from codeFri, 21 Feb 2025

// 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; } } @Test void sumaHastaNegativo() { //GIVE int [] array={3, 8, -2, 4, 6}; int esperado,resultado,suma; //WHEN esperado=11; resultado=OperacionesArray.sumaHastaNegativo(array); //THEN assertEquals(esperado,resultado); 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 saltan los primeros elementos del array. Debería comenzar desde el índice 0 (`i=0`). 3. **No se está sumando el primer elemento**: En la condición `if (array[i] >= 0)`, se rompe el bucle cuando se encuentra un número positivo, pero no se está sumando el primer elemento del array. Debería sumar el primer elemento antes de entrar en el bucle. 4. **No se está sumando el segundo elemento**: En la condición `if (array[i] >= 0)`, se rompe el bucle cuando se encuentra un número positivo, pero no se está sumando el segundo elemento del array. Debería sumar el segundo elemento antes de entrar en el bucle. 5. **No se está sumando el tercer elemento**: En la condición `if (array[i] >= 0)`, se rompe el bucle cuando se encuentra un número positivo, pero no se está sumando el tercer elemento del array. Debería sumar el tercer elemento antes de entrar en el bucle. 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; } ``` En este código, se suma cada elemento del array mientras se encuentren números positivos. Cuando se encuentra un número negativo, se rompe el bucle y se devuelve la suma de los números positivos.

Want to kickstart your project?Use the new AI Studio to create your code