void menu(List<String> clientes) {
String comando = getComando();
switch (comando) {
case "1":
adicionaClientes(clientes);
menu(clientes);
break;
case "2":
listarClientes(clientes);
menu(clientes);
break;
case "3":
print("Até breve!");
break;
}
}
A principal diferença é que a chamada menu(clientes) está dentro de cada case, antes do break. Isso significa que o menu só é chamado novamente se o usuário escolher as opções "1" ou "2". Se o usuário escolher "3", o programa imprime "Até breve!" e o break impede que o menu seja chamado novamente, encerrando o programa.