Teoria

Introdução

Fala aí, aqui é o Guga do Responde Aí! Tudo bem com você?

Nesse tópico nós iremos falar sobre mais um comando condicional, que apesar de ser menos utilizado que o comando if é muito interessante para a criação de algumas estruturas específicas, como por exemplo o menu inteirinho de um programa.

Calma, ele é bem fácil você vai ver... Vamos nessa!

O comando switch

De forma bem simples, a estrutura switch define diversos blocos de execução para diferentes casos, é por esse motivo que esse comando é também chamado de switch case. Esses casos são definidos para possíveis valores que uma variável “escolhida” para atuação na estrutura poderá assumir.

Vamos para um exemplo!

Suponha que você esteja desenvolvendo um programa que irá realizar as operações de uma calculadora, como são muitas opções, você decidiu criar uma variável chamada option e caso o valor dessa variável seja 0, o programa irá realizar a operação de soma, caso o valor seja 1, a operação de subtração, caso 2, a operação de divisão e assim por diante.

É bem simples de entender, né?

Vamos agora ver como tudo isso funciona de fato no código utilizando uma linguagem de programação, nesse caso a linguagem C.

Estrutura do comando switch

A figura a seguir ilustra a estrutura do comando switch case na linguagem C:

O funcionamento dessa estrutura consiste na comparação do valor da variável com cada constantes presente dentro da estrutura, caso o valor da variável seja igual a uma das constantes, o bloco de instruções presente no caso em que a constante é igual será executado até o break, que fará com que o programa saia da estrutura switch e continue sua execução.

Porém, se o valor da variável não for igual a nenhuma das constantes presentes na estrutura switch, por padrão as instruções executadas serão aquelas presentes em default, se por algum motivo não existir default o programa simplesmente continuará a execução sem fazer nada.

Sendo assim, como ficaria a estrutura switch se eu quisesse imprimir o nome de um mês de acordo com a sua representação numérica presente em uma variável?

Nesse caso, se o valor presente na variável mes fosse 11, o valor impresso na tela pelo programa seria “Novembro”.

Por incrível que pareça, o comando switch case é só isso, mamão com açúcar você não acha? Agora que você já entendeu o assunto desse tópico, está na hora de nós fazermos alguns exercícios de fixação!

Te espero na página aqui do ladinho, hein!?

QUE A FORÇA ESTEJA CONOSCO!

Estrutura do comando switch

Exercícios Resolvidos

Exercício Resolvido #1

Qual é a função do case especial da estrutura switch denominado default.

Passo 1

O case especial default é utilizado para que algum comando seja executado em uma estrutura switch mesmo que nenhum case dessa estrutura seja válido.

Resposta

Portanto, o bloco default atua como um case padrão de execução quando nenhum outro é executado.

Exercício Resolvido #2

Observe o seguinte programa:

Considerando que o usuário digite 7 quando uma entrada for requisitada, responda o que será impresso na tela ao final de sua execução e qual é a importância do comando break em estruturas switch case?

Passo 1

Para resolvermos esse exercício nós devemos saber exatamente qual é a função do break em uma estrutura switch case. Isso acontece, pois se um determinado case não é encerrado com break a estrutura switch case continua efetuando verificações e, como nesse caso as instruções dos cases alteram diretamente a variável “escolhida”, nós podemos ter diversas execuções de instruções.

Passo 2

Beleza, vamos entender tudo isso na prática.

Como o enunciado nos fornece a informação de que n está armazenando o valor 7, nós temos certeza de que o primeiro case (case 7) será executado. Logo, n passará armazenar o valor 8 e como esse case não é finalizado com o comando break a execução da estrutura deve continuar.

Passo 3

Sendo assim, o segundo case (case 8) também será executado e é nele que teremos a nossa primeira impressão. Após a impressão de n (que nesse momento armazena o valor 8), nós teremos o incremento de duas unidades nessa variável, ou seja, agora ela passa a armazenar o valor 10 e mais uma vez um case dessa estrutura não é encerrado com break.

Passo 4

Esse não encerramento implica na execução do terceiro case (case 10), que simplesmente incrementa n em uma unidade (passando a assumir o valor 11) e finalmente é encerrado com o comando break.

Passo 5

Sendo assim, mesmo que o quarto case (case 11) seja verdadeiro, uma vez que n assume o valor 11, o mesmo não será executado, assim como qualquer outro caso dessa estrutura. Isso acontece, pois a partir do momento que há um break em uma estrutura switch case a sua execução é encerrada e o programa continua sua execução a partir das instruções presentes após essa estrutura.

Resposta

Portanto, teremos apenas a impressão do número 8 na tela.