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.
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.
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);
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.
El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…
En este post te voy a enseñar a designar una carpeta para imprimir todos los…
En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…
Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…
Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…
Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…
Esta web usa cookies.