corrigeme este codigo si esta mal // 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 res=false; for (int i=0;i<array.length;i++) { if (array[i] >= 0) { res=true; }else{ res=false; } } return res; }
El código que proporcionaste tiene un problema lógico. Estás estableciendo `res` a `true` en cuanto encuentras un número positivo en el array, pero luego lo vuelves a establecer a `false` en la siguiente iteración del bucle. Esto significa que solo necesitas una iteración para establecer `res` a `true`, y el método siempre devolverá `true` si el array tiene al menos un número positivo. Aquí te dejo la corrección: ```java // 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 res = true; // Inicializa res a true for (int i = 0; i < array.length; i++) { if (array[i] < 0) { // Comprueba si el número es negativo res = false; // Si es negativo, establece res a false break; // Sale del bucle } } return res; } ``` En este código, inicializamos `res` a `true` y luego comprobamos si cada número en el array es negativo. Si encontramos un número negativo, establecemos `res` a `false` y salimos del bucle con `break`. Si no encontramos ningún número negativo, `res` seguirá siendo `true` y se devolverá al final del método.