Hola buenas, estoy en un examen de programacion y me piden que haga una excepcion para controlar que el valor introducido en un double sea siempre un numero y no una letra o caracter extraño, no se como hacer eso, podriais echarme un cable?
System.out.println("Introduce el precio del juego: ");
double n = teclado.nextDouble();
if(
{
}
Depende del lenguaje, C o C++
Una solución usada a menudo es tomar el valor de entrada como una cadena de texto y recorrer la cadena mirando que todos los caracteres sean numeros, y no otra cosa y luego devolver el número correcto.
Una de tantas eso si
normalmente las excepciones se utilizan para controlar o saltar(evitar) un error inesperado o por diferencias de datos, para ello se usa try y catch, hay cientos de páginas con estos y microsoft por supuesto también lo tiene: https://msdn.microsoft.com/es-AR/library/ms173160.aspx, para algo tan simple deberías aprender a usar una fántastica herramienta: google
Hola
Hola para saber si una variables es una letra o un número usa Char.GetNumericValue.
Char.GetNumericValue Method (Char) (https://msdn.microsoft.com/en-us/library/aa311572(v=vs.71).aspx)
Método:
Char.GetNumericValue("25") ---> Devuelve 1
Char.GetNumericValue("LA") ----> Devuelve -1
También puedes usar:
Char.IsDigit (https://msdn.microsoft.com/es-es/library/7f0ddtxh(v=vs.110).aspx)
Char.IsDigit() -> ¿Es un dígito? ---> Devuelve True/False
Char.IsNumber (https://msdn.microsoft.com/es-es/library/system.char.isnumber(v=vs.110).aspx)
Char.IsNumber() ¿Es un número? ---> Devuelve True/False
Char.IsLetter (https://msdn.microsoft.com/es-es/library/yyxz6h5w(v=vs.110).aspx)
Char.IsLetter() -> ¿Es una letra? ---> Devuelve True/False
Ayer estuve conectado. Lástima no vi tu pregunta.
ese momento incomodo que estás en un examen de programación y decides preguntar en un foro algo urgente XD
probablemente para el momento que Orubatosu respondió ya SergioCaliber estaba en su casa y con 0 de nota XD
CitarSergioCaliber estaba en su casa y con 0 de nota XD
Me da que más de uno de los que respondieron aquí, obtuvieron misma nota...
Ojo, que "hacer una excepción" se puede interpretar de varias maneras, como crear la excepción literálmente hablando heredando la clase base, o simplemente controlar posibles excepciones en un bloque try/catch...
De todas formas, ya de nada sirve explicar, y menos cuando tu pregunta es sobre Java, que nada tuvo que ver con .Net ...Ay! esos despistes catastróficos en mitad del examen, jeje.
Saludos
En el código que indicas falta inicializar teclado, que entiendo puede ser un Scanner.
Una opción es controlar la excepción que da al introducir otro caracter que no sea double, en este caso esa excepción es: "InputMismatchException", para capturar esa excepción y hacer "algo" con el código cuando se de, tenemos que usar un try & catch como te han indicado, aquí te paso un ejemplo de lo que creo querías hacer:
Scanner teclado = new Scanner(System.in);
try{
System.out.println("Introduce el precio del juego: ");
double n = teclado.nextDouble();
} catch (InputMismatchException ex) {
System.out.println("No ha introducido un double Correcto");
}
Ya dependiendo del objetivo podrías meter la petición del precio dentro de un bloque do while para que volviese a pedirle hasta que diese un valor double valido.