Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

[Dúvida] Retornar uma String em Java

Olá!

Estou fazendo um programa que realiza o cadastro de funcionários de uma empresa, a dúvida que tenho é que preciso retornar uma String. Segue o código abaixo:

public class Menu extends Funcionario {
    //Criação de um novo funcionário
    Funcionario estagiario = new Funcionario();
    void menu() {
        System.out.println("Qual seu nome?");
        String nome = auxiliar.nextLine();
        //1°Parte de menu
        System.out.println("Olá " + nome + "!");
        System.out.println("Me diga sua relação com a empresa: " + //encontrar um texto melhor
                "\n1)Sou funcionário\n2)Sou cliente\n3)Sair");
        String pergunta = auxiliar.nextLine();

        //1°Possibilidade do menu
        switch (pergunta) {
                case "1":
                    while (true) {
                        System.out.println("Muito bem! O que deseja escolher agora?" +
                                "\n1)Visualizar saldo \n2)Registrar horário de chegada" +
                                "\n3)Registrar horário de saída \n4)Voltar");
                        String escolha = auxiliar.nextLine();
                        switch (escolha) {
                            case "1":
                                estagiario.calculaSaldo();
                                System.out.println("Deseja retornar ao menu ou fechar o app? " +
                                        "\n1)Retornar 2)Fechar");
                                pergunta = auxiliar.nextLine();
                                switch (pergunta) {
                                    case "1":
                                        
                                    case "2":
                                        auxiliar.close();
                                }
                                break;

Ao final do código é possível reparar que eu coloquei a opção "retornar", o problema é que não consigo pensar em um comando para retornar o menu ""\n1)Visualizar saldo \n2)Registrar horário de chegada" + "\n3)Registrar horário de saída \n4)Voltar");" Alguém consegue me ajudar?

4 respostas
solução!

opa tudo bem? Ficaria mais ou menos assim seu codigo.

import java.util.Scanner;

public class Menu {
    private Funcionario estagiario;
    private Scanner auxiliar;

    public Menu() {
        estagiario = new Funcionario();
        auxiliar = new Scanner(System.in);
    }

    public void iniciar() {
        System.out.println("Qual seu nome?");
        String nome = auxiliar.nextLine();

        System.out.println("Olá " + nome + "!");
        boolean sair = false;

        while (!sair) {
            System.out.println("Me diga sua relação com a empresa: " +
                    "\n1)Sou funcionário\n2)Sou cliente\n3)Sair");
            String pergunta = auxiliar.nextLine();

            switch (pergunta) {
                case "1":
                    menuFuncionario();
                    break;
                case "2":
                    // Lógica para cliente
                    break;
                case "3":
                    sair = true;
                    break;
                default:
                    System.out.println("Opção inválida. Tente novamente.");
            }
        }

        auxiliar.close();
    }

    private void menuFuncionario() {
        while (true) {
            System.out.println("Muito bem! O que deseja escolher agora?" +
                    "\n1)Visualizar saldo \n2)Registrar horário de chegada" +
                    "\n3)Registrar horário de saída \n4)Voltar");
            String escolha = auxiliar.nextLine();
            
            switch (escolha) {
                case "1":
                    estagiario.calculaSaldo();
                    System.out.println("Deseja retornar ao menu ou fechar o app? " +
                            "\n1)Retornar 2)Fechar");
                    String pergunta = auxiliar.nextLine();
                    if (pergunta.equals("2")) {
                        return; // Sai do menu de funcionário e volta ao menu principal
                    }
                    break;
                case "2":
                    // Lógica para registrar horário de chegada
                    break;
                case "3":
                    // Lógica para registrar horário de saída
                    break;
                case "4":
                    return; // Volta ao menu principal
                default:
                    System.out.println("Opção inválida. Tente novamente.");
            }
        }
    }

    public static void main(String[] args) {
        Menu menu = new Menu();
        menu.iniciar();
    }
}

Como funciona o boolean?

o boolean no seu caso, so usei pra otmizar seu codigo, mas praticamente usei só pra sair do loop

Ahh ok muito obrigado!