Hay dos mensajes iguales que se muestran al decidir salir de la aplicación o al quedarse el usuario sin saldo. Mi cuestión aquí es que no sé cómo hacer que ese mensaje no lo tenga que escribir dos veces, sino solo una definido como método o de otra manera para que ni código sea más limpio y corto. Dejo mi código: Sí, tengo otra clase para las compras.
import java.util.*;
public class Principal {
public static void main(String[] args) {
Scanner cliente = new Scanner(System.in);
///////////////// try de Map
Map<Integer, Compra> intento = new TreeMap<>(Comparator.reverseOrder());
//////////////////////////
System.out.println("Escriba el límite de la tarjeta:");
int limiteDeSaldo = cliente.nextInt();
cliente.nextLine(); // Limpiar el buffer
// Inicio del bucle
while (true) {
System.out.println("Escriba la descripción de la compra:");
String articulo = cliente.nextLine();
System.out.println("Escriba el valor de la compra:");
int valorDeCompra = cliente.nextInt();
cliente.nextLine(); // Limpiar el buffer
if (valorDeCompra <= limiteDeSaldo) {
limiteDeSaldo -= valorDeCompra;
System.out.println("¡Compra Realizada!");
} else {
System.out.println("¡Saldo insuficiente!");
System.out.println("**************");
System.out.println("COMPRAS REALIZADAS:");
for (Compra compra : intento.values()) {
System.out.println(compra);
}
System.out.println("**************");
System.out.println("Saldo de tarjeta: " + limiteDeSaldo);
break;
}
// Introducir el guardado de clave - valor
intento.put(valorDeCompra, new Compra(articulo, valorDeCompra));
System.out.println("Escriba 0 para salir o 1 para continuar");
int salida = cliente.nextInt();
cliente.nextLine(); // Limpiar el buffer
if (salida == 0) {
System.out.println("**************");
System.out.println("COMPRAS REALIZADAS:");
for (Compra compra : intento.values()) {
System.out.println(compra);
}
System.out.println("**************");
System.out.println("Saldo de tarjeta: " + limiteDeSaldo);
break;
}
}
}
}