fork download
  1. import java.util.Scanner;
  2.  
  3. class RegistoDeMensagem4 {
  4.  
  5. private static int lerNumero(Scanner kb, String mensagem, String mensagemErro) {
  6. while (true) {
  7. System.out.println(mensagem);
  8. try {
  9. return Integer.parseInt(kb.nextLine());
  10. } catch (NumberFormatException e) {
  11. System.out.println(mensagemErro);
  12. }
  13. }
  14. }
  15.  
  16. private static boolean lerSimNao(Scanner kb, String mensagem, String mensagemErro) {
  17. while (true) {
  18. System.out.println(mensagem);
  19. String x = kb.nextLine();
  20. if (x.equalsIgnoreCase("S")) return true;
  21. if (x.equalsIgnoreCase("N")) return false;
  22. System.out.println(mensagemErro);
  23. }
  24. }
  25.  
  26. public static void main(String[] args) {
  27. Scanner kb = new Scanner(System.in);
  28.  
  29. System.out.println("Bem-vindo, utilizador.");
  30. boolean maisRecarga = true;
  31. while (maisRecarga) {
  32. int recarga = lerNumero(kb, "Introduza o número da recarga: ", "Isso que você digitou não era um número. Por favor, tente novamente.");
  33. System.out.println("Você digitou " + recarga + ".");
  34. maisRecarga = lerSimNao(kb, "Tem mais recarga para registar?\nResponda `S´ para continuar ou `N´ para terminar: ", "Era para você responder S ou N! Por favor, tente novamente.");
  35. }
  36. System.out.println("Obrigado, até o próximo registro.");
  37. }
  38. }
Success #stdin #stdout 0.05s 711680KB
stdin
1234
S
Banana
4321
J
n
stdout
Bem-vindo, utilizador.
Introduza o número da recarga: 
Você digitou 1234.
Tem mais recarga para registar?
Responda `S´ para continuar ou `N´ para terminar: 
Introduza o número da recarga: 
Isso que você digitou não era um número. Por favor, tente novamente.
Introduza o número da recarga: 
Você digitou 4321.
Tem mais recarga para registar?
Responda `S´ para continuar ou `N´ para terminar: 
Era para você responder S ou N! Por favor, tente novamente.
Tem mais recarga para registar?
Responda `S´ para continuar ou `N´ para terminar: 
Obrigado, até o próximo registro.