En este post de programación en Java te enseñaré a solicitar un número por teclado pero asegurándonos de que el número realmente es válido y que se encuentra dentro de un rango.
De este modo vamos a poder validar números, ya que si el usuario ingresa una cadena o un número inválido vamos a indicarlo, y no vamos a dejar de solicitar el número hasta que el mismo sea válido.
Lo mismo sucede para el otro caso: además de validar que el valor sea numérico, vamos a comprobar que se encuentre en un rango.
De este modo validaremos números en Java usando la clase Scanner
.
El funcionamiento va a estar encerrado dentro de un método en donde habrá un ciclo while infinito. Dentro del ciclo vamos a solicitar el número, leer si es un entero y en caso de que esté en el rango vamos a devolverlo.
En caso contrario vamos a consumir lo que haya en el escáner invocando a next
, y el ciclo se repetirá hasta que el usuario ingrese un número válido.
La función de Java queda así:
// https://parzibyte.me/blog
public static int solicitarNumeroValido(String mensaje, int minimo, int maximo) {
Scanner s = new Scanner(System.in);
int numero;
while (true) {
System.out.println(mensaje);
if (s.hasNextInt()) {
numero = s.nextInt();
if (numero >= minimo && numero <= maximo) {
return numero;
} else {
System.out.println("Número fuera de rango. Intente de nuevo");
}
} else {
s.next();
}
}
}
Los parámetros que recibe son el mensaje que se muestra para solicitar el número así como el mínimo y máximo para el rango del número. Un ejemplo del modo de uso es el siguiente:
package me.parzibyte;
import java.util.Scanner;
public class Main {
// https://parzibyte.me/blog
public static int solicitarNumeroValido(String mensaje, int minimo, int maximo) {
Scanner s = new Scanner(System.in);
int numero;
while (true) {
System.out.println(mensaje);
if (s.hasNextInt()) {
numero = s.nextInt();
if (numero >= minimo && numero <= maximo) {
return numero;
} else {
System.out.println("Número fuera de rango. Intente de nuevo");
}
} else {
s.next();
}
}
}
// https://parzibyte.me/blog
public static void main(String[] args) {
int numero = solicitarNumeroValido("Ingresa un número entre 1 y 5: ", 1, 5);
System.out.println("El número ingresado es: " + numero);
}
}
Nota: como puedes ver, el método crea un Scanner. En ocasiones cuando es llamado y hay otras instancias de Scanner en el programa, ocurren errores.
Si tienes problemas y vas a usar varios Scanner, te recomiendo utilizar una única estancia y compartirla en todo el programa.
Para terminar te dejo con más tutoriales para aprender Java.
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.