Mínimo y máximo de serie numérica introducida por usuario en Java - Ejercicio resuelto

Java: mínimo y máximo de números introducidos por el usuario

El día de hoy resolveremos un ejercicio de programación en Java en donde tenemos que encontrar el menor y el mayor de una serie de números introducida por el usuario. La solicitud dice así:

Calcula el número más grande y pequeño de los números introducidos por teclado. Acabamos de introducir números cuando el usuario nos introduzca el 0. El 0 no debe tenerse en cuenta, es una marca final.

Entonces mientras el usuario no introduzca un cero debemos agregar los números a una lista, y una vez que encontremos el cero obtenemos el mayor y menor.

Veamos cómo resolver este ejercicio de programación con Java.

Explicación del algoritmo

Vamos a hacer un ciclo infinito que se romperá cuando encontremos un 0. El ciclo será un while(true) y para romperlo usaremos break.

Al inicio del ciclo vamos a declarar la lista de números. En este caso por comodidad usaré un ArrayList.

Mientras el ciclo se esté ejecutando vamos a escanear un número introducido por el usuario y si no es cero lo vamos a agregar al ArrayList. Si es que es cero entonces rompemos el ciclo.

Cuando estemos fuera del ciclo (esto pasará cuando el usuario haya terminado de introducir números) vamos a inicializar nuestro mayor y menor hasta el momento y vamos a suponer que ambos son el primer elemento del ArrayList (solo para inicializar).

Luego recorremos la lista y comparamos cada valor. Si el valor actual es mayor que el mayor hasta el momento, entonces el nuevo valor del mayor es el valor actual. Y lo mismo para el menor.

Máximo y mínimo de serie introducida por usuario en Java

Arriba expliqué el algoritmo, ahora veamos el código. Primero declaramos y llenamos el ArrayList:

Scanner sc = new Scanner(System.in);
ArrayList<Integer> numeros = new ArrayList<>();
while (true) {
    System.out.println("Ingresa un número: ");
    int numero = sc.nextInt();
    if (numero == 0) {
        break;
    } else {
        numeros.add(numero);
    }
}

Ahora comparamos si la lista tiene elementos (ya que el usuario pudo dejarla vacía):

if (numeros.size() <= 0) {
    System.out.println("No se ha introducido ningún valor correcto.");
} else {
  // Aquí podemos estar seguros de que hay elementos
}

Y en caso de que no esté vacía buscamos el mayor y menor además de imprimir los resultados:

int mayor = numeros.get(0);
int menor = numeros.get(0);
for (int numero : numeros) {
    if (numero > mayor) {
        mayor = numero;
    }
    if (numero < menor) {
        menor = numero;
    }
}
System.out.printf("Máximo: %d; Mínimo: %d", mayor, menor);

Poniendo todo junto

Mínimo y máximo de serie numérica introducida por usuario en Java - Ejercicio resuelto
Mínimo y máximo de serie numérica introducida por usuario en Java – Ejercicio resuelto

El código completo queda como se ve a continuación. Lo he colocado en una función separada para que el código quede mejor ordenado:

public static void serieMaximoMinimo() {
    Scanner sc = new Scanner(System.in);
    ArrayList<Integer> numeros = new ArrayList<>();
    while (true) {
        System.out.println("Ingresa un número: ");
        int numero = sc.nextInt();
        if (numero == 0) {
            break;
        } else {
            numeros.add(numero);
        }
    }
    if (numeros.size() <= 0) {
        System.out.println("No se ha introducido ningún valor correcto.");
    } else {
        int mayor = numeros.get(0);
        int menor = numeros.get(0);
        for (int numero : numeros) {
            if (numero > mayor) {
                mayor = numero;
            }
            if (numero < menor) {
                menor = numero;
            }
        }
        System.out.printf("Máximo: %d; Mínimo: %d", mayor, menor);
    }
    sc.close();
}

Puedes ejecutarlo desde cualquier lugar, por ejemplo, el método main:

public static void main(String[] args) {
    serieMaximoMinimo();
}

No olvides importar a java.util.Scanner.

Para terminar te dejo con más tutoriales de Java en mi blog.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *