Preciso de ajuda, java, repetir menu de opções!

Não estou conseguindo voltar ao menu inicial do programa solicitado, o enuciado é o seguinte:

Crie um programa que apresente o seguinte menu de opções:
M E N U D E O P Ç Õ E S
1 - Insira dados de um funcionário:
2 - Informe a soma dos salários
3 - Informe a quantidade de funcionários lidos
4 - Informe a quantidade de funcionários do sexo masculino lidos
5 - Informe a quantidade de funcionários do sexo feminino lidos
6 - Saia da Estrutura de Repetição!
Informe a opção:
O menu deve ser inserido em uma estrutura de repetição e sua apresentação deve se repetir
até que a opção apresente um valor igual a 6.
Enquanto a opção de valor igual a 6 não for informada, cada opção selecionada deve ser
tratada dentro de uma estrutura switch-case, isto é, após apresentação e escolha da opção de
menu, uma estrutura switch-case deve tratar a variável lida e seus possíveis valores.
Qual o valor da variável for igual a 1, o seguinte conjunto de entrada de dados deve ser
realizado (os valores em verde são exemplos):
Informe a idade: 40
Informe o sexo(0 - Masculino/ 1 - Feminino): 0
Informe o salário bruto: 2395,17
Quando o valor da variável for igual a 2, a seguinte saída deve aparecer na tela (o valor em
verde é um exemplo):
Soma de salários = 2395.17
Quando o valor da variável for igual a 3, a seguinte saída deve aparecer na tela (o valor em
verde é um exemplo):
Quantidade de funcionários = 1
Quando o valor da variável for igual a 4, a seguinte saída deve aparecer na tela (o valor em
verde é um exemplo):
Quantidade de Funcionários do sexo Masculino = 1
Quando o valor da variável for igual a 5, a seguinte saída deve aparecer na tela (o valor em
verde é um exemplo):
Quantidade de Funcionários do sexo Feminino = 0
Quando o valor da variável for de um valor <=0 ou > 6, a seguinte saída deve aparecer na tela:
Opção Inválida!..
Quando o valor da variável for igual a 6, a seguinte saída deve aparecer na tela:
Saindo do Menu…
Após esta opção, a estrutura de repetição será interrompida e, caso os dados de ao menos um
funcionário tenham sido lidos, o seguinte conjunto final de saídas deve ser apresentado (os
valores em verde são exemplos de saída):
Últimas Informações!
Soma de salários R$2350.86
Quantidade de Funcionários: 1
Quantidade de Funcionários do sexo Masculino: 0
Quantidade de Funcionários do sexo Feminino: 1
Quantidade de Funcionários com mais de 40 anos: 0
Média de salários R$2350.86
Porcentagem de Funcionários com mais de 40 anos: 0

import java.util.Scanner;
public class Grupo01A2{
public static void main(String[] args) {
Scanner menu = new Scanner(System.in);
Scanner ler = new Scanner(System.in);
float salario = 0, somatorio = 0, media;
String sexo, masculino, feminino;
int idade, cont = 0;

    //Entrada de dados
    System.out.println(" MENU DE OPÇÕES\n\n");
    System.out.println("1 - Insira dados de um funcionário: ");
    System.out.println("2 - Informe a soma dos salários: ");
    System.out.println("3 - Informe a quantidade de funcionários lidos: ");
    System.out.println("4 - Informe a quantidade de funcionários do sexo masculino lidos: ");
    System.out.println("5 - Informe a quantidade de funcionários do sexo feminino lidos: ");
    System.out.println("6 - Saia da Estrutura de Repetição!");
    System.out.print("Informe a opção: ");
    int opcao = menu.nextInt();
    switch (opcao){
        case 1 :
            System.out.print("\nInforme a idade: ");
            idade = ler.nextInt();
            System.out.print("\nInforme o salario: ");
            salario = ler.nextFloat();
            System.out.print("\nInforme o sexo(0 - Masculino/ 1 - Feminino): ");
            sexo = ler.next();
            break;  
        case 2 : 
            while(salario >=0){
                System.out.print(" \nSoma de salários:" + somatorio);
                salario = ler.nextFloat();
                if (salario >= 0){
                    cont = cont + 1;
                    somatorio = somatorio + salario;
                }
            }
            break;
        case 3 :
            System.out.print(" \nQuantidade de funcionários lidos:" + cont);

            break;
        case 4 :
            System.out.print("\nQuantidade de Funcionários do sexo Masculino: ");

            break;
        case 5 :
            System.out.print("\nQuantidade de Funcionários do sexo Feminino: ");
            
            break;
        default: 
            System.out.print("código inválido");
    }
}

}

Você pode seguir essa estrutura, colocando o menu dentro de um while:

 Scanner scan = new Scanner(System.in);
 int opcao = 0;
    
 while(opcao != 6){
   System.out.println(" MENU DE OPÇÕES\n\n");
   System.out.println("1 - Insira dados de um funcionário: ");
   System.out.println("2 - Informe a soma dos salários: ");
   System.out.println("3 - Informe a quantidade de funcionários lidos: ");
   System.out.println("4 - Informe a quantidade de funcionários do sexo masculino lidos: ");
   System.out.println("5 - Informe a quantidade de funcionários do sexo feminino lidos: ");
   System.out.println("6 - Saia da Estrutura de Repetição!");
   System.out.print("Informe a opção: ");
   opcao = scan.nextInt();
      
   switch(opcao){
     case 1:
       System.out.println("Case1");
       break;
     case 2:
       System.out.println("Case2");
       break;
     case 6:
       System.out.println("Saindo..");
       break;
     default:
       System.out.println("valor invalido");
   }
 }
 System.out.println("Saiu! O restante da logica aqui!");
 //

Então para eu repetir o menu apos cada opçao escolhida, basta eu inserir o while 1 vez, ou eu tenho que inserir em cada case?

É só seguir essa estrutura que falei! Você coloca o menu dentro do while uma única vez. Se quiser pode testar! Cópia esse código em um arquivo separado, colocando dentro do método main! E ver como está acontecendo!

1 curtida

lembrando que o java nao limpa o console se é o que vc esta querendo. mas é so voce fazer como o Jelson1 falou que da certo.

1 curtida