Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Mi propuesta de solución...

import java.util.InputMismatchException;
import java.util.Scanner;

public class Range {
    public static void main(String[] args) {
        double LOWER_LIMIT = 1000;
        double UPPER_LIMIT = 5000;
        Scanner scanner = new Scanner(System.in);
        double loanValue;
        String opt = "0";

        showHeader();

        do {
            System.out.print("\n* Ingrese el valor del préstamo: ");
            try {
                loanValue = scanner.nextDouble();
                
                if (loanValue >= LOWER_LIMIT && loanValue <= UPPER_LIMIT) {
                    System.out.printf("%nEl valor %.1f está dentro del rango permitido.%n%n", loanValue);
                } else System.out.printf("%nEl valor %.1f no está dentro del rango permitido.%n%n", loanValue);
                
                System.out.print("Para terminar digite 0 o cualquier tecla para calcular otro préstamo: ");
                opt = scanner.next();
            } catch (InputMismatchException _) {
                System.out.println("\n¡Ingrese un valor válido, intenta de nuevo!\n");
                scanner.nextLine();
            }
        } while (!opt.equals("0"));

        System.out.println("\nClosing app... Thanks for using our service");

        scanner.close();
    }

    private static void showHeader() {
        System.out.print("""
                
                ***********************************
                    Welcome to Money lending app
                ***********************************
                """);
    }
}
1 respuesta

Hola Wilmar, espero que estés bien

Tu propuesta de solución parece estar bien encaminada. Has implementado correctamente el uso de Scanner para recibir la entrada del usuario y utilizas la estructura condicional if/else para verificar si el valor ingresado está dentro del rango permitido. También manejas la excepción InputMismatchException para asegurar que el usuario ingrese un valor válido, lo cual es una buena práctica.

Aquí hay algunos puntos que podrías considerar para mejorar o ajustar tu código:

  1. Mensajes de salida: Asegúrate de que los mensajes de salida sean claros y concisos. Tu mensaje de salida ya es bastante claro, pero siempre puedes verificar que coincida exactamente con lo que se espera en la actividad.

  2. Validación del tipo de entrada: Ya estás manejando valores no numéricos con InputMismatchException, lo cual es excelente. Esto ayuda a evitar que el programa falle cuando el usuario ingresa algo que no es un número.

  3. Estructura del bucle: Tu uso del bucle do-while es apropiado para permitir múltiples intentos de entrada. Asegúrate de que el mensaje para continuar o terminar sea claro para el usuario.

  4. Cierre del recurso Scanner: Ya estás cerrando el Scanner al final del programa, lo cual es importante para liberar recursos.

En general, tu código parece cumplir con los requisitos de la actividad. Siéntete libre de hacer ajustes menores según lo que consideres necesario para mejorar la experiencia del usuario o la claridad del código.

Espero haber ayudado y buenos estudios!