¡Hola Blanca, espero que estés bien!
Tu código para verificar el descuento en compras se ve bastante bien. Estás utilizando un bucle do-while
para permitir múltiples entradas de valores de compra hasta que el usuario decida salir ingresando un 0. También estás aplicando correctamente el descuento del 10% para compras iguales o superiores a 100.
Aquí hay un par de sugerencias para mejorar la claridad y el estilo de tu código:
Formato de salida: Para mejorar la legibilidad de los valores monetarios, podrías considerar formatear los números a dos decimales. Esto se puede hacer utilizando String.format
o System.out.printf
. Por ejemplo:
System.out.printf("Nuevo valor: $%.2f%n", nuevoValor);
System.out.printf("Valor total: $%.2f%n", valorCompra);
Mensajes al usuario: Puedes hacer que los mensajes sean más claros para el usuario. Por ejemplo, especificar que el descuento es del 10% en lugar de "%10" podría evitar confusiones.
Estructura del código: Aunque no es necesario, podrías considerar separar la lógica de cálculo del descuento en un método separado para hacer el código más modular y fácil de mantener.
Aquí tienes una versión con los cambios sugeridos:
import java.util.Scanner;
public class DescuentoCompra {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double valorCompra;
do {
System.out.println("Ingrese el valor de la compra (0 para salir): ");
valorCompra = scanner.nextDouble();
if (valorCompra == 0) {
System.out.println("Fin del programa.");
break;
}
if (valorCompra >= 100.0) {
double descuento = valorCompra * 0.10;
double nuevoValor = valorCompra - descuento;
System.out.println("Descuento del 10% aplicado.");
System.out.printf("Nuevo valor: $%.2f%n", nuevoValor);
} else {
System.out.println("Descuento no aplicado.");
System.out.printf("Valor total: $%.2f%n", valorCompra);
}
System.out.println();
} while (true);
scanner.close();
}
}
Espero que estas sugerencias te sean útiles. ¡Espero haber ayudado y buenos estudios!