Hola, el código no lo veo mal. El algoritmo está bien planteado y el programa funciona. Si quieres que te diga un aspecto que me parece mejorable, te indicaría que lo que peor veo es que no haces uso de la orientación a objetos, es decir, no trabajas con clases sino con una única clase que contiene todo el codigo del programa.
Para que el programa termine una vez que el usuario elija que no quiera hacer otra operación solo te faltaría añadir la instrucción System.exit(0); que da lugar a la terminación del programa, es decir:
while(op==1);
System.exit(0);
De este modo cuando no elige 1 se ejecuta la salida del programa.
Los botones los puedes lograr con:
JOptionPane.showConfirmDialog(null, "Continuar", "Salir", JOptionPane.YES_NO_OPTION);
Saludos.