java

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

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.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

3 días hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

3 días hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

3 días hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

3 días hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

3 días hace

Solución: Apache – Server unable to read htaccess file

Ayer estaba editando unos archivos que son servidos con el servidor Apache y al visitarlos…

4 días hace

Esta web usa cookies.