Ir para conteúdo
J.Pedro_OR

Como fazer um comando dentro do case para reiniciar o switch

Recommended Posts

Eu preciso fazer o sistema de uma urna eletrônica para um trabalho, e eu utilizei a estrutura de switch para fazer o menu de candidatos, e quero que o eleitor tenha a oportunidade de confirmar ou corrigir depois de escolher seu candidato. O problema é que eu não sei como fazer o switch reiniciar para que o eleitor possa escolher outro case, sendo que ele já havia selecionado um. Que é o que o botão "corrigir" faz. Segue o código produzido até agora:


#include <stdio.h>
#include <stdlib.h>

int main(void) {

  int confirmar, corrigir, candidato, titulo;
  int maeli, antonio, lissandro, branco, nulo;
  int condicaoverdade=1;

  printf("Digite seu núemro de eleitor:");
  scanf("%d", &titulo);

  printf("Candidatos para Presidente: \n");
  
  printf("Sra. Maeli Gente Boa nº17 \n");
  printf("Sr. Antônio do Brasil nº22 \n");
  printf("Dr. Lissandro Progresso nº31 \n");
  printf("Digite 1 para branco \n");
  printf("Digite o número de um candidato não existente para votar nulo \n");
  scanf("%i",&candidato);

  while(condicaoverdade){

    switch(candidato){

    case 17:
      printf("Sra. Maeli Gente Boa nº17 \n");
      printf("aperte \"c\" para confirmar \n");
      printf("aperte \"r\" para corrigir \n");
      scanf("%i",&confirmar);
      if (confirmar == 'c' ){
        condicaoverdade = 0;
        maeli++;
        break;
      }
      else if (confirmar == 'r'){
        condicaoverdade = 1;
      }
      break;

    case 22:
      printf("Sr. Antônio do Brasil nº22 \n");
      printf("aperte \"c\" para confirmar \n");
      printf("aperte \"r\" para corrigir \n");
      scanf("%i",&confirmar);
      if (confirmar == 'c'){
        condicaoverdade = 0;
        antonio++;
      }  
      else if (confirmar == 'r'){
        condicaoverdade = 1;
      }
      break;

    case 31:
      printf("Dr. Lissandro Progresso nº31 \n");
      printf("aperte \"c\" para confirmar \n");
      printf("aperte \"r\" para corrigir \n");
      scanf("%i",&confirmar);
      if (confirmar == 'c' ){
        condicaoverdade = 0;
        lissandro++;
      }  
      else if (confirmar == 'r'){
      condicaoverdade = 1;
      }
      break;

    case 1:
      printf("branco \n");
      printf("aperte \"c\" para confirmar \n");
      printf("aperte \"r\" para corrigir \n");
      scanf("%i",&confirmar);
      if (confirmar == 'c' ){
        condicaoverdade = 0;
        branco++;
      }  
      else if (confirmar == 'r'){
      condicaoverdade = 1;
      }
      break;

    default:
    printf("nulo \n");
    printf("aperte \"c\" para confirmar \n");
    printf("aperte \"r\" para corrigir \n");
    scanf("%i",&confirmar);
    if (confirmar == 'c' ){
      condicaoverdade = 0;
      nulo++;
    }
    else if (confirmar == 'r'){
      condicaoverdade = 1;
    }
    break;
  
  }
  return 0;
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por rtavix
      Tenho uma planilha com campos preenchidos, nessa planilha no campo CEP por exemplo as vezes o usuário sem querer coloca " ' " e "/" e " ", existe uma função que posso vir a utilizar que dispara uma mensagem para o mesmo pedindo para verificar essa planilha?
    • Por rtavix
      Tenho uma planilha com campos preenchidos, nessa planilha no campo CEP por exemplo as vezes o usuário sem querer coloca " ' " e "/" e " ", existe uma função que posso vir a utilizar que dispara uma mensagem para o mesmo pedindo para verificar essa planilha?
    • Por Engenheiro Serra
      Alguém especializado em C# poderia me dar uma luz em algo muito simples?
       
      Queria fazer uma janela form simples com um único botão, e quando clicar nesse botão iria gerar uma MessageBox com a numeração de 1 a 10 apenas.
      Pensei em fazer um FOR com um vetor que usaria um cont pra gerar os números e guardar no vetor e depois mostrar o conteúdo na messageBox de uma só vez, mas não acho uma lógica que não repita o MessageBox 10x.

      Abaixo minha tentativa frsutrada:
       
      private void button1_Click(object sender, EventArgs e)
              {             
                  int[] numeros = new int[10];
                  for (int cont = 0; cont < 10; cont++)
                  {
                      numeros[cont] = cont;
                  }
                  MessageBox.Show(numeros.ToString());
              }
    • Por MeninaMouse
      Alguém pode me ajudar na elaboração de tabela de status no asp.net e mantendo os dados atualizados em tempo real? 
    • Por _marlon307
      Montei uma pagina para impressão mas não quero repetir o mesmo código no evento em que vai fazer a impressão.
       
      Leia os comentários no código : }   
       
      using System; using System.Drawing; using System.Drawing.Printing; using System.Windows.Forms; namespace DrawString { public partial class Form1 : Form { public Form1() { InitializeComponent(); foreach(var printter in PrinterSettings.InstalledPrinters) { comboBox1.Items.Add(printter); } } private void panel1_Paint(object sender, PaintEventArgs e) { //Quero passar o que esta formatado aqui para o outro evento sem precisar de reetir o codigo Graphics g = panel1.CreateGraphics(); SolidBrush s = new SolidBrush(Color.Black); FontFamily ff = new FontFamily("Arial"); Font font = new Font(ff, 50); g.DrawString("TESTE", font, s, 10, 43); } private void BtnImprimir_Click(object sender, EventArgs e) { using (var pd = new PrintDocument()) { pd.PrintPage += PanelPrintPage; pd.PrinterSettings.PrinterName = comboBox1.SelectedItem.ToString(); pd.Print(); } } private void PanelPrintPage(object sender, PrintPageEventArgs e) { //E passar para aqui sem repetir o codigo acima onde vai fazer a impressao } } }  
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.