language from codeFri, 21 Feb 2025

te voy. a pasar mi codiogo,,,, porque no me funciona // Método que debería devolver verdadero si todos los números en un array son positivos, falso en caso contrario // Entrada -> un array con 2, 4, 6, -8, 1 // Debería devolver false public static boolean sonTodosPositivos(int[] array) { boolean resultado = true; for (int i = 0; i < array.length; i++) { if (array[i] < 0) { resultado = false; }else{ resultado=true; } } return resultado; } @Test void sonTodosPositivos() { //GIVE int[] array={2, 4, 6, -8, 1}; boolean esperado,resultado; //WHEN esperado=false; resultado=OperacionesArray.sonTodosPositivos(array); //THEN assertEquals(esperado,resultado); }

El problema en tu código es que estás estableciendo `resultado` en `true` en el `else` de la condición `if (array[i] < 0)`. Esto significa que si el primer número del array es positivo, `resultado` se establece en `true` y no se cambia en el resto de la iteración, ya que la condición `if` no se cumple. Aquí te dejo la corrección: ```java public static boolean sonTodosPositivos(int[] array) { boolean resultado = true; for (int i = 0; i < array.length; i++) { if (array[i] < 0) { resultado = false; break; // Salimos del bucle si encontramos un número negativo } } return resultado; } ``` En este código, si encontramos un número negativo, establecemos `resultado` en `false` y salimos del bucle con `break`. Si no encontramos ningún número negativo, `resultado` seguirá siendo `true` al final del bucle. También puedes simplificar el código utilizando una condición `return` en lugar de un bucle: ```java public static boolean sonTodosPositivos(int[] array) { for (int numero : array) { if (numero < 0) { return false; } } return true; } ``` En este caso, si encontramos un número negativo, devolvemos `false` inmediatamente. Si no encontramos ningún número negativo, devolvemos `true` al final del método.

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