/ CalcularPrecio.java
CalcularPrecio.java
1 /* 2 Realiza un programa que dado el precio de un artículo y el IVA a aplicar mostrará como resultado 3 el precio con el iva aplicado. Siendo los IVAS posibles: 4 %,10 % y 21 %. 4 5 Preguntas a hacerme: 6 - ¿Cómo validaré que el usuario solo pueda elegir 4, 10 o 21? 7 - ¿Qué pasa si elige otro número? 8 - ¿Usaré double para el precio o int? 9 */ 10 11 import java.util.Scanner; 12 13 public class CalcularPrecio { 14 public static void main(String[] args) { 15 /* 16 * Scanner: Clase de java.util que permite leer entrada de datos 17 * - sc: variable de tipo Scanner que referencia al objeto Scanner que usaremos 18 * para leer datos 19 * - new Scanner(System.in): crea una nueva instancia del objeto Scanner 20 * - System.in: argumento que representa flujo estándar de entrada (teclado) 21 */ 22 Scanner sc = new Scanner(System.in); 23 24 // Pedir precio 25 double precio = 0; 26 // Constantes 27 final double IVA4 = 1.04; 28 final double IVA10 = 1.10; 29 final double IVA21 = 1.21; 30 31 // Check si el dato es válido 32 boolean datoValido = false; 33 while (!datoValido) { 34 try { 35 System.out.print("Añade el precio de un artículo hipotético: "); 36 precio = sc.nextDouble(); 37 sc.nextLine(); 38 datoValido = true; 39 System.out.println(precio); 40 } catch (Exception e) { 41 System.out.println("El dato debe ser numérico."); 42 sc.nextLine(); 43 } 44 } 45 46 // Pedir IVA a aplicar 47 boolean eleccionbuena = false; 48 while (!eleccionbuena) { 49 int iva = eleccionIva(sc); 50 double resultado; 51 switch (iva) { 52 53 case 1: 54 System.out.println("Has elegido 1"); 55 resultado = precio * IVA4; 56 System.out.println("El PVP con el IVA al 4% es de: " + resultado); 57 eleccionbuena = true; 58 break; 59 case 2: 60 resultado = precio * IVA10; 61 System.out.println("El PVP con el IVA al 10% es de: " + resultado); 62 eleccionbuena = true; 63 break; 64 case 3: 65 System.out.println("Has elegido 3"); 66 resultado = precio * IVA21; 67 System.out.println("El PVP con el IVA al 21% es de: " + resultado); 68 eleccionbuena = true; 69 break; 70 71 default: 72 System.out.println("La respuesta debe ser: 1, 2 o 3."); 73 } 74 } 75 76 sc.close(); 77 78 } 79 80 public static int eleccionIva(Scanner sc) { 81 int eleccion = 0; 82 boolean eleccionValida = false; 83 84 while (!eleccionValida) { 85 try { 86 System.out.println("Elige qué IVA se le debe aplicar."); 87 System.out.println("Pulsa 1. Si quieres IVA al 4% "); 88 System.out.println("Pulsa 2. Si quieres IVA al 10% "); 89 System.out.println("Pulsa 3. Si quieres IVA al 21% "); 90 System.out.println("------------------------------"); 91 92 System.out.print("Elige 1, 2 o 3: "); 93 eleccion = sc.nextInt(); 94 sc.nextLine(); 95 eleccionValida = true; 96 97 } catch (Exception e) { 98 System.out.println("La respuesta debe ser: 1, 2 o 3."); 99 sc.nextLine(); 100 } 101 } 102 103 return eleccion; 104 } 105 }