Ir para o conteúdo do rodapé
Iron Academy Logo
Aprenda C#
Aprenda C#

Outras categorias

Instrução Switch Case em C#

Layla Porter
20m 21s

A instrução switch em C# é um poderoso mecanismo de controle de fluxo que permite aos desenvolvedores executar um bloco de código dentre vários, com base no valor de uma expressão. É particularmente útil em situações onde é necessário verificar múltiplas condições em relação a uma única variável. Os operadores podem ser empregados dentro de estruturas switch para executar diversas ações em expressões de correspondência, como comparações e verificações lógicas.

Em seu vídeo " C# para Iniciantes parte 4 - Operadores e Switches ", Layla Porter explora conceitos fundamentais da programação em C#, com foco em operadores e instruções switch case. Este artigo, inspirado em seu vídeo, detalhará suas explicações e fornecerá trechos de código do vídeo para entender os comandos switch case e ​​os operadores.

Introdução aos operadores

Os operadores em C# são cruciais para manipular dados, comparar valores e tomar decisões com base em casos e comparações . Layla começa explicando os diferentes tipos de operadores: operadores aritméticos, de comparação e lógicos.

Entrada do usuário usando Console.ReadLine

Layla começa demonstrando como capturar a entrada do usuário usando Console.ReadLine(). Este método lê uma linha de entrada do console, o que é essencial para aplicativos C# interativos.

Console.WriteLine("Hello, please write any word:");
string word = Console.ReadLine();
Console.WriteLine("Hello, please write any word:");
string word = Console.ReadLine();

Operador de atribuição

No trecho de código acima, Layla usa o operador de atribuição (=) para armazenar o valor obtido da entrada do usuário na variável word. Segue um resumo:

  • string word: Declara uma variável chamada word do tipo string.

  • word = Console.ReadLine(): Usa o operador de atribuição (=) para atribuir o valor inserido pelo usuário (obtido de Console.ReadLine()) à variável word.

Neste contexto, o operador de atribuição é usado para definir o valor da variável word para qualquer coisa que o usuário digitar no console. O operador de atribuição é fundamental em programação, pois é usado para armazenar valores em variáveis, permitindo que esses valores sejam usados ​​e manipulados durante a execução do programa.

Operadores Aritméticos

Os operadores aritméticos em C# executam operações matemáticas básicas, como adição, subtração, multiplicação, divisão e módulo. Esses operadores são simples e essenciais para qualquer linguagem de programação. Layla não aborda esses tópicos em seu vídeo porque são operações matemáticas simples que retornam exatamente os mesmos valores que em problemas matemáticos reais.

Operadores de comparação

Os operadores de comparação em C# permitem comparar valores e tomar decisões com base nessas comparações. Layla introduz os operadores maior que (>), menor que (<), maior ou igual a (>=), menor ou igual a (<=), igualdade (==) e desigualdade (!=).

Utilizando operadores de comparação em instruções de lógica condicional

Em seu vídeo, Layla Porter explora o uso da lógica condicional em C# para determinar o comprimento de uma palavra fornecida pelo usuário. Ela, às 2:10, começa demonstrando a estrutura básica de uma instrução if para verificar o comprimento de uma string usando a propriedade Length do tipo string. Essa propriedade retorna o número de caracteres na string.

if (word.Length < 6)
{
    Console.WriteLine("That's a short word.");
}
if (word.Length < 6)
{
    Console.WriteLine("That's a short word.");
}

A primeira verificação condicional usa o operador menor que (<) para ver se o comprimento da palavra é menor que seis caracteres. Se a condição for verdadeira, o programa exibe a mensagem "Essa é uma palavra curta". Essa parte do código ajuda a categorizar palavras mais curtas de forma eficaz.

Em seguida, às 4:00, Layla Porter introduz o conceito de usar uma instrução else if com condições combinadas usando o operador maior ou igual a (>=) e o operador lógico AND (&&). A condição combinada verifica se o comprimento da palavra é de pelo menos seis, mas inferior a onze caracteres. Se ambas as condições forem satisfeitas, o programa exibe a mensagem: "Essa é uma palavra de comprimento médio". Isso demonstra como múltiplas condições podem ser combinadas para tomar decisões mais precisas com base no comprimento da palavra.

else if (word.Length >= 6 && word.Length < 11)
{
    Console.WriteLine("That's a medium length word.");
}
else if (word.Length >= 6 && word.Length < 11)
{
    Console.WriteLine("That's a medium length word.");
}

Finalmente, Layla, aos 4:40, explica o uso da instrução else para lidar com todos os outros casos que não atendem às condições anteriores. Esta parte do código exibe a mensagem "Essa é uma palavra longa." para palavras com onze caracteres ou mais. O uso da instrução else garante que qualquer entrada não contemplada pelas condições anteriores seja tratada adequadamente.

else
{
    Console.WriteLine("That's a long word.");
}
else
{
    Console.WriteLine("That's a long word.");
}

Agora, Layla executa o programa (5:15) e insere algumas palavras para categorizar usando as declarações condicionais e os operadores de comparação acima:

Csharp Switch Case 1 related to Utilizando operadores de comparação em instruções de lógica condicional

Operadores Lógicos

Operadores lógicos &&, ||, ! permite combinar múltiplas condições em C# para criar uma lógica de tomada de decisões mais complexa. Layla, às 6:24, explica como esses operadores funcionam em conjunto para criar declarações condicionais.

Em seu vídeo, Layla Porter apresenta um minijogo onde o usuário deve identificar a palavra intrusa em uma lista de animais: "cachorro", "gato" e "peixinho dourado". O peixinho dourado é considerado o intruso porque vive na água e não é um mamífero. Layla (6:55) começa pedindo que o usuário insira sua escolha usando Console.ReadLine() e depois garante que a entrada esteja em minúsculas usando o método ToLower() para evitar questões de sensibilidade a maiúsculas e minúsculas ao comparar strings:

Console.WriteLine("Pick the odd one out - dog, cat, goldfish");
string oddOne = Console.ReadLine().ToLower();
Console.WriteLine("Pick the odd one out - dog, cat, goldfish");
string oddOne = Console.ReadLine().ToLower();

Layla, aos 7:32, explica o uso dos operadores de comparação para verificar a entrada do usuário em relação ao sistema e à lista predefinida de animais.

if (oddOne != "dog" && oddOne != "cat")
{
    Console.WriteLine("You chose the odd one out!");
}
if (oddOne != "dog" && oddOne != "cat")
{
    Console.WriteLine("You chose the odd one out!");
}

O código usa o operador diferente de (!=) para verificar se a entrada não corresponde a "dog" e "cat". Ao combinar essas condições com o operador lógico AND (&&), o código garante que ambas as condições devem ser verdadeiras para que a declaração seja satisfatória. Se a entrada não for "cachorro" nem "gato", deve ser "peixinho dourado", e o programa exibe a mensagem: "Você escolheu o diferente!"

else
{
    Console.WriteLine("Better luck next time!");
}
else
{
    Console.WriteLine("Better luck next time!");
}

Se a entrada do usuário não satisfizer essa condição, ou seja, se a entrada for "cachorro" ou "gato", o bloco else será executado e o programa exibirá a mensagem "Melhor sorte na próxima vez!".

Csharp Switch Case 2 related to Operadores Lógicos

Layla (8:30) explica mais detalhadamente a importância de entender como os operadores lógicos funcionam em declarações condicionais. O operador AND (&&) requer que ambas as condições sejam verdadeiras, enquanto o operador OR (||) requer apenas que uma condição seja verdadeira. Ela (9:05) demonstra como o uso desses operadores pode alterar o comportamento do programa, destacando as nuances e as possíveis armadilhas ao usar operadores lógicos em C#. Essa explicação ajuda os espectadores a entender como usar a lógica condicional de forma eficaz em seus programas.

Introdução às instruções switch case em C

As instruções switch oferecem uma maneira alternativa de implementar a tomada de decisões com múltiplas ramificações em C#, geralmente mais legível e eficiente do que várias instruções if-else. Em C#, 'case c' é usado para especificar condições dentro de instruções switch, garantindo que a comparação opere em valores do mesmo tipo.

Em seu vídeo (12:38), Layla Porter faz a transição do uso de uma instrução if-else para uma instrução switch para determinar a categoria de comprimento de uma determinada palavra. Ela explica que usar uma instrução switch pode tornar o código mais limpo e eficiente.

O trecho de código tem a seguinte aparência:

switch (word.Length)
{
    case < 6:
        Console.WriteLine("That's a short word!");
        break;
    case int length when 6 <= length && length < 11:
        Console.WriteLine("That's a medium length word!");
        break;
    default:
        Console.WriteLine("That's a long word!");
        break;
}
switch (word.Length)
{
    case < 6:
        Console.WriteLine("That's a short word!");
        break;
    case int length when 6 <= length && length < 11:
        Console.WriteLine("That's a medium length word!");
        break;
    default:
        Console.WriteLine("That's a long word!");
        break;
}

Layla explica que uma instrução switch é composta por múltiplos casos, cada um representando um valor possível ou um intervalo de valores para a variável que está sendo avaliada. Nesse caso, a variável é word.Length.

  1. Caso < 6 : O primeiro caso verifica se o comprimento da palavra é menor que 6. Se essa condição for atendida, o programa exibe "Essa é uma palavra curta!" e então usa a instrução break para sair do bloco switch. Lembre-se que o caso pode ter várias declarações.

  2. Caso int length quando 6 <= length && length < 11 : O segundo caso é mais complexo. Ele usa um recurso de correspondência de padrão introduzido no C# 7.0. O caso é definido com int length seguido por uma cláusula when que especifica condições adicionais: o comprimento deve ser maior ou igual a 6 e menor que 11. Se os padrões corresponderem, o programa exibe "That's a medium length word!" e então sai do bloco switch.

  3. Padrão : Se nenhum dos casos anteriores for satisfeito, o caso padrão será executado. Isso funciona como a instrução "else" em uma estrutura "if-else". Nesse caso, o programa exibe a mensagem "Essa é uma palavra longa!" e sai do bloco switch.

Layla (15:45) destaca que usar uma instrução switch em vez de uma instrução if pode ser benéfico porque torna o código mais legível e fácil de gerenciar, especialmente ao lidar com várias condições. Além disso, ela menciona que as instruções switch podem ser mais eficientes porque o compilador C# as otimiza de forma diferente, tornando sua execução mais rápida.

Expressões Switch (Correspondência de Padrões)

As expressões switch são um recurso mais recente do C# que oferece uma sintaxe mais concisa para decisões simples baseadas em valores. No vídeo de Layla Porter, por volta dos 16:25, ela apresenta uma instrução switch moderna chamada "switch expression" ou "pattern matching switch" em C#. Esse tipo de instrução switch retorna um valor diretamente, tornando o código mais conciso e legível.

Ela (por volta das 17h) começa mostrando como reescrever uma instrução if-else usando a sintaxe de expressão switch. Em vez de executar ações, a expressão switch atribui um valor a uma variável com base em condições. Por exemplo, este exemplo:

// Example of Switch Expression
string message = word.Length switch
{
    < 6 => "That's a short word!",
    < 11 and >= 6 => "That's a medium length word!",
    _ => "That's a long length word!"
};

Console.WriteLine(message);
// Example of Switch Expression
string message = word.Length switch
{
    < 6 => "That's a short word!",
    < 11 and >= 6 => "That's a medium length word!",
    _ => "That's a long length word!"
};

Console.WriteLine(message);

Eis o que Layla (17:31) explica sobre o código acima:

  1. String message = word.Length switch: Inicializa uma variável string message e inicia uma expressão de switch baseada em word.Length.

  2. < 6 => "That's a short word!": Se word.Length for menor que 6, retorna "That's a short word!" usando o operador menor que <.

  3. < 11 and >= 6 => "That's a medium length word!": Se word.Length estiver entre 6 e 10 inclusive, retorna "That's a medium length word!" usando and para legibilidade.

  4. _ => "Essa é uma palavra muito longa!" : O sublinhado serve como um caso padrão, retornando "Essa é uma palavra muito longa!" se nenhuma das condições anteriores for atendida.

Layla enfatiza que essa sintaxe faz parte dos recursos modernos do C# projetados para melhorar a legibilidade e a eficiência. A expressão switch é preferível às tradicionais instruções if-else para lidar com múltiplas condições de forma concisa.

Ela executa o código às 19h30 e a saída é a mesma que para o if-else:

Csharp Switch Case 3 related to Expressões Switch (Correspondência de Padrões)

Conclusão

O vídeo de Layla Porter oferece uma base sólida para iniciantes em programação C#, abordando conceitos essenciais como operadores, instruções condicionais e instruções switch. Ao acompanhar suas explicações e exemplos, os iniciantes podem obter conhecimentos práticos sobre como manipular dados e controlar o fluxo do programa de forma eficaz em C#.

Ao compreender esses conceitos fundamentais e praticar com os exemplos fornecidos, os iniciantes em C# podem construir uma base sólida para tarefas de programação mais complexas. Confira mais vídeos de C# no canal dela no YouTube .

Hero Worlddot related to Instrução Switch Case em C#
Hero Affiliate related to Instrução Switch Case em C#

Ganhe mais compartilhando o que você ama.

Você cria conteúdo para desenvolvedores que trabalham com .NET, C#, Java, Python ou Node.js? Transforme sua expertise em renda extra!

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim