Autor Tema: Obligar entrada por teclado tipo de dato InputMismatchException Java CU00680B  (Leído 3434 veces)

Lorenzo31

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 381
    • Ver Perfil
Buenas tardes, dejo mi solución para este ejercicio.

Clase EscanerDatos

Código: [Seleccionar]
import java.util.Scanner;
import java.util.InputMismatchException;

/**
 * Esta clase guarda los valores introducidos por el usuario a partir del teclado
 *
 * @author Lorenzo31
 * @version 08-04-2015
 */
public class EscanerDatos
{
    /**
     * Constructor vacio sin necesidad de parametros
     */
   
    public EscanerDatos(){ /*vacio*/ }

    /**
     * Método que recoge datos por consola y devuelve un double
     * @return devuelve un valor double introducido por el usuario
     */
    public double getDouble(){

        double valor = 0;
         System.out.println("Introduce un valor ");
          do{
           try{
                Scanner escaner = new Scanner(System.in);
                valor = escaner.nextDouble();
            }catch (InputMismatchException e){ System.out.println("Debes introducir un valor double");
            }
          } while (valor == 0);

        return valor;
    }
   
    /**
     * Método que recoge datos por consola y devuelve un entero
     * @return devuelve un valor int introducido por el usuario entre 1 y 4
     */
    public int getEntero(){
       int valor = 0;
       do{
           try{
                Scanner escaner = new Scanner(System.in);
                valor = escaner.nextInt();
            }catch (InputMismatchException e){ System.out.println("Debes introducir un valor entero");
            }
          } while (valor < 1 || valor > 4);
   
       return valor;   
    }
   
   
}


Clase MiniCalculadoraEjemplo

Código: [Seleccionar]
import java.lang.Math;

/**
 * Esta clase define operaciones matemáticas realizadas a partir
 * de unos valores por que determina el usuario previamente.
 * @author Lorenzo31
 * @version 08-04-2015
 */

public class MiniCalculadoraEjemplo{
   
    /**
     * Constructor sin parámetros ni inicializaciones
     */
   
    public MiniCalculadoraEjemplo(){ /*vacio*/ }
   
    /**
     * Método que calcula el valor absoluto de un número.
     * @param numero : el valor sobre el que se desea ejecutar la operación
     * @return valor absoluto resultante del cálculo
     */
   
    public double getValorAbsoluto(double numero){ return Math.abs(numero); }
   
    /**
     * Método que calcula la raiz cuadrada de un número.
     * @param numero : el valor sobre el que se desea ejecutar la operación
     * @return valor resultante del cálculo de la raiz cuadrada
     */
   
    public double getRaizCuadrada(double numero){ return Math.sqrt(numero); }
}

Clase GestorCalculo

Código: [Seleccionar]

/**
 * Esta clase contiene el main necesario para la ejecución de los calculos
 *
 * @author Lorenzo31
 * @version 08-04-2015
 */
public class GestorCalculo
{
    /**
     * Metodo main que ejecuta las opciones de calculo y pide valor al usuario
     * Con menu para elegir opciones
     * @see <a href = "https://www.aprenderaprogramar.es/index.php?option=com_content&view=article&id=646:documentar-proyectos-java-con-javadoc-comentarios-simbolos-tags-deprecated-param-etc-cu00680b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188" /> aprenderaprogramar.com – Didáctica en programación </a>
     */
    public static void main (String [] args){
        double numero;
        int valor;
       
        System.out.println("Iniciamos el programa \n ");
       
        MiniCalculadoraEjemplo operar = new MiniCalculadoraEjemplo();
       
        EscanerDatos entrada = new EscanerDatos();
        numero = entrada.getDouble();

       
        do{
            System.out.println(" 1.- Introducir nuevo número \n 2.- Calcular valor absoluto \n 3.- Calcular raiz cuadrada \n 4.-Salir \n");

            valor = entrada.getEntero();

            switch(valor){
                case 1: numero = entrada.getDouble(); break;
                case 2: System.out.println(operar.getValorAbsoluto(numero) ); break;
                case 3: System.out.println(operar.getRaizCuadrada(numero) ); break;
            }
        }while (valor != 4);
   
        System.out.println("Final del programa "); 
    } //final main

}//final clase
« Última modificación: 09 de Abril 2015, 10:33 por Mario R. Rancel »

Mario R. Rancel

  • Administrador
  • Experto
  • ********
  • APR2.COM
  • Mensajes: 1978
    • Ver Perfil
Hola Lorenzo, el ejercicio está bien resuelto, de hecho has hecho más de lo que se pedía, ya que tan sólo se pedía documentar una clase y has documentado tres y todo bien, así que perfecto. Saludos.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".