Duda Examen Programaciin Urgente

Iniciado por SergioCaliber, 17 Marzo 2016, 18:28 PM

0 Miembros y 1 Visitante están viendo este tema.

SergioCaliber

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(
        {
           
        }

Orubatosu

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
"When People called me freak, i close my eyes and laughed, because they are blinded to happiness"
Hideto Matsumoto 1964-1998

tincopasan

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

Lekim

#3
Hola

Hola para saber si una variables es una letra o un número usa Char.GetNumericValue.

Char.GetNumericValue Method (Char)


Método:
Char.GetNumericValue("25")   ---> Devuelve 1
Char.GetNumericValue("LA")  ----> Devuelve -1


También puedes usar:
Char.IsDigit
Char.IsDigit()  -> ¿Es un dígito? ---> Devuelve True/False

Char.IsNumber
Char.IsNumber() ¿Es un número?  ---> Devuelve True/False

Char.IsLetter
Char.IsLetter() -> ¿Es una letra? ---> Devuelve True/False


Ayer estuve conectado. Lástima no vi tu pregunta.

engel lex

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
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

HdM

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

- Nice to see you again -

Eleкtro

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








zanskmp

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:

Código (java) [Seleccionar]

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.