Como criar um Switch Case dentro de outro Switch case C Sharp

10/02/2017

0

C#

Pessoal,

Estou tentando criar um menu e dentro dele terá algumas opções, sendo que a última sempre deve ser voltar ao menu principal até que aperte o número 4 para sair...

Consegui fazer ele mostrar o primeiro sub-menu, porem a primeira opção dele (incluir aluno) fica em looping

O segundo menu e o terceiro não estão entrando também.

Alguém poderia me ajudar?

Obrigado!!

using AulaOrientaçãoObjetos.Modelo;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AulaOrientaçãoObjetos
{
public class Program
{
static void Main(string[] args)
{
Pessoa pessoa = new Pessoa();

List<Pessoa> pessoas = new List<Pessoa>();

bool FimExecucaoMenu = true;

do
{

Console.Clear();
Console.WriteLine("#**************************************#");
Console.WriteLine("# #");
Console.WriteLine("# --- MENU PRINCIPAL --- #");
Console.WriteLine("# #");
Console.WriteLine("# 1 - Gerenciar Alunos #");
Console.WriteLine("# 2 - Gerenciar Cursos #");
Console.WriteLine("# 3 - Gerenciar Colaboradores #");
Console.WriteLine("# 4 - Sair #");
Console.WriteLine("# #");
Console.WriteLine("# #");
Console.WriteLine("#**************************************#");
Console.WriteLine();
Console.Write("Digite sua opcao: ");

int opcaoMenuPrincipal = int.Parse(Console.ReadLine());

switch (opcaoMenuPrincipal)
{
case 1:

Console.Clear();
Console.WriteLine("#**************************************#");
Console.WriteLine("# #");
Console.WriteLine("# --- MENU ALUNO --- #");
Console.WriteLine("# #");
Console.WriteLine("# 1 - Incluir aluno #");
Console.WriteLine("# 2 - Alterar aluno #");
Console.WriteLine("# 3 - Pesquisar aluno #");
Console.WriteLine("# 4 - Excluir aluno #");
Console.WriteLine("# 5 - Voltar ao menu principal #");
Console.WriteLine("# #");
Console.WriteLine("#**************************************#");
Console.WriteLine();
Console.Write("Digite sua opcao: ");

int opcaoMenuAluno = int.Parse(Console.ReadLine());

while(opcaoMenuAluno != 5)
{

switch (opcaoMenuAluno)
{
case 1:
Console.Clear();
Console.WriteLine("Teste");
break;

case 2:
Console.Clear();
break;

case 3:
Console.Clear();
break;

case 4:
Console.Clear();
break;

case 5:
//Console.Clear();
opcaoMenuAluno = 5;
//FimExecucaoMenu = false;

break;

default:
//Console.Clear();
break;

}

}
break;

case 2:

Console.Clear();
Console.WriteLine("#**************************************#");
Console.WriteLine("# #");
Console.WriteLine("# --- MENU CURSO --- #");
Console.WriteLine("# #");
Console.WriteLine("# 1 - Incluir curso #");
Console.WriteLine("# 2 - Alterar curso #");
Console.WriteLine("# 3 - Pesquisar curso #");
Console.WriteLine("# 4 - Excluir curso #");
Console.WriteLine("# 5 - Voltar ao menu principal #");
Console.WriteLine("# #");
Console.WriteLine("#**************************************#");
Console.WriteLine();
Console.Write("Digite sua opcao: ");

break;

case 3:
Console.WriteLine("Teste!!");
break;

case 4:
FimExecucaoMenu = false;
break;

default:

break;

}

} while (FimExecucaoMenu);

//Console.ReadKey();


}
}
}
Daniel

Daniel

Responder

Posts

14/02/2017

Victor Machado

Olá Daniel,
O problema é que você só está definindo um novo valor para a variável opcaoMenuAluno fora do while, assim ele vai ficar em loop eternamente.

Qualquer outra dúvida, só falar.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar