Alura > Cursos de Programação > Cursos de .NET > Conteúdos de .NET > Primeiras aulas do curso Praticando C#: condicionais com if/else e switch/case

Praticando C#: condicionais com if/else e switch/case

If/else - Apresentação

Boas-vindas! Meu nome é Iasmin Araújo, sou instrutora na Escola de Programação da Alura, e irei te acompanhar ao longo dessa jornada de aprendizagem.

Audiodescrição: Iasmin se descreve como uma mulher branca, com cabelo castanho-escuro longo e liso repartido ao meio, sobrancelhas castanho-escuras, e olhos verdes. Ela veste uma blusa azul-marinho, e está sentada em uma cadeira preta e rosa em frente a microfone cinza, com uma parede clara ao fundo iluminada em gradiente azul.

O que vamos aprender?

O objetivo deste curso é praticar as condicionais. Para isso, abordaremos diversos tópicos:

Conclusão

Temos diversos tópicos bastante importantes quando falamos sobre lógica de programação, mas também é interessante praticar todos esses conceitos. Para isso, na sequência, vamos começar a nos aprofundar nos tópicos sobre condicionais mencionados.

Bons estudos e até o próximo vídeo!

If/else - If/else

Neste vídeo, entenderemos o que são expressões condicionais e como aplicá-las.

Expressões condicionais

O que são expressões condicionais?

Pelo próprio nome, conseguimos entender o que significam expressões condicionais: são expressões que dependem de certas condições para serem executadas.

Suponha que estamos desenvolvendo um jogo online, e só conseguimos fazer com que a pessoa usuária acesse e visualize esse jogo se a conexão estiver ativa. Se a conexão estiver inativa, o jogo não carrega. Dessa forma, o programa depende de uma condição para ser executado.

Conhecendo a estrutura condicional em C#

Podemos representar essas condições utilizando os blocos if e else.

Na linguagem C#, a estrutura condicional possui a seguinte sintaxe:

if (expressão) 
{
    vá por esse caminho
} 
else 
{
    vá por esse outro caminho
}

Utilizamos a palavra-chave if, abrimos parênteses e, entre eles, colocamos uma expressão. Essa expressão pode retornar true ou false, que são valores booleanos. Se a expressão resultar em verdadeiro (true), entramos no bloco if e executamos o caminho determinado entre chaves.

Se a expressão resultar em falso (false), podemos seguir outro caminho, caso não haja nada após o bloco if. Além disso, podemos definir o que queremos fazer se a expressão for falsa.

Dessa forma, se for verdadeira, fazemos uma coisa específica; caso contrário, fazemos outra coisa diferente. O "caso contrário" é representado pelo bloco else. Teremos a palavra-chave else e, entre chaves, outro bloco que indica seguir por outro caminho.

Importante! Em expressões condicionais, ou executamos o bloco if ou executamos o bloco else. Não é possível executar ambas as coisas ao mesmo tempo.

O que são operadores relacionais?

Quando falamos sobre expressões condicionais, que resultam em true ou false, existem vários operadores que podem nos ajudar a trabalhar com elas. Temos os operadores de comparação, que são os operadores relacionais, e dentro deles, há diversos tipos de comparação.

Observe a tabela abaixo:

OperadorSignificadoExemplo
>Maior quex > 10
<Menor quex < 10
==Igual ax == 10
!=Diferente dex != 10
>=Maior ou igual ax >= 10
<=Menor ou igual ax <= 10

Podemos, por exemplo, querer saber se uma variável tem um valor maior que outro. Suponha que queremos comparar se a variável x é maior do que 10. Nesse caso específico, utilizamos o operador de comparação representado por >. Da mesma forma, podemos comparar se uma variável é menor que outra, se é igual, se é diferente, maior ou igual, ou menor ou igual.

Atenção! O operador de igualdade é representado por dois símbolos de igual (==). Se usarmos apenas um símbolo (=), temos uma atribuição, que são coisas diferentes.

O que são operadores lógicos?

Os operadores apresentados tratam de comparação de valores, mas podemos querer juntar as condições. Para isso, utilizamos os operadores lógicos.

Dentro dos operadores lógicos, temos o operador AND, que indica se uma condição e outra são verdadeiras. Observe a tabela-verdade abaixo:

Operador AND

Condição 1Condição 2Resultado
VerdadeiroVerdadeiroVerdadeiro
VerdadeiroFalsoFalso
FalsoVerdadeiroFalso
FalsoFalsoFalso

Se temos verdadeiro e verdadeiro, retornamos verdadeiro, mas se temos qualquer outra combinação, o resultado será falso. A condição 1 não pode ser verdadeira e a 2 ser falsa, por exemplo, se queremos que a combinação delas seja verdadeira.

Já no caso do operador OR, queremos que uma condição ou outra sejam verdadeiras. Abaixo, temos outra tabela-verdade exemplificando o seu uso:

Operador OR

Condição 1Condição 2Resultado
VerdadeiroVerdadeiroVerdadeiro
VerdadeiroFalsoFalso
FalsoVerdadeiroFalso
FalsoFalsoFalso

Para a combinação das condições ser verdadeira, apenas uma precisa verdadeira. Podemos ter verdadeiro e verdadeiro, que resultará em verdadeiro; verdadeiro e falso resultando em verdadeiro; e falso com falso, resultando em falso, pois pelo menos uma condição deve ser verdadeira.

Além disso, temos o operador NOT, que será o contrário do valor: se temos uma expressão verdadeira, a negação dela é falso; e se temos uma expressão falsa, a negação dela será verdadeira.

Abaixo, a representação do operador em tabela:

Operador NOT

ExpressãoNegação
VerdadeiroFalso
FalsoVerdadeiro

Exemplo prático no Visual Studio

Uma vez que conhecemos esses diversos operadores, bem como os blocos if e else, podemos verificar em código como isso funciona na prática.

Com o Visual Studio aberto, começaremos com o exemplo da conexão ativa. No arquivo Program.cs, criaremos uma variável booleana bool conexaoAtiva e definiremos a conexão como válida (true).

Em seguida, se a conexão estiver ativa (if (conexaoAtiva)), vamos iniciar o jogo com Console.WriteLine() exibindo a mensagem "Iniciando o jogo!".

Por outro lado, se a conexão não estiver ativa (else), queremos mostrar outra mensagem para a pessoa usuária. Utilizando Console.WriteLine(), definiremos que, caso a conexão esteja inativa, a mensagem exibida para a pessoa usuária será "Você perdeu sua conexão!".

Program.cs:

bool conexaoAtiva = true;

if (conexaoAtiva)
{
    Console.WriteLine("Iniciando o jogo!");
}
else
{
    Console.WriteLine("Você perdeu sua conexão!");
}

Dessa forma, ou executamos o primeiro bloco, ou o segundo. Com isso, receberemos a mensagem "Iniciando o jogo!", pois a variável conexaoAtiva era true. Alterando conexaoAtiva para false, entraremos no bloco else. Ao executar, teremos "Você perdeu sua conexão!".

Conclusão

Assim, conhecemos o funcionamento básico das estruturas if e else!

If/else - Mais exemplos de if/else

Neste vídeo, apresentaremos outros exemplos de expressões condicionais.

Mais exemplos de expressões condicionais

Vamos pensar em um exemplo mais avançado? Suponha que trabalhamos em um e-commerce. Nesse e-commerce, se uma compra for a partir de 300 reais, o cliente ganha 10% de desconto.

Nesse caso, precisaremos trabalhar novamente com condições.

Definindo variáveis e condições iniciais

Primeiramente, no arquivo Program.cs no Visual Studio, vamos criar uma variável double chamada valorCompra e atribuir a ela o valor de 545 reais.

Program.cs:

// código omitido

double valorCompra = 545.00;

Agora, queremos verificar se o valor da compra é maior do que 300. Portanto, se (if) valorCompra for maior que (>) 300, usaremos um operador relacional de comparação.

Nesse caso, vamos informar que o cliente teve um desconto. Para calcular o valor do desconto, criaremos a variável double desconto no bloco if, que será valorCompra multiplicado por 0.1. Podemos usar interpolação para exibir $"Você ganhou {desconto} reais em desconto!".

// código omitido

double valorCompra = 545.00;

if (valorCompra > 300.00)
{
    double desconto = valorCompra * 0.1;
    Console.WriteLine($"Você ganhou {desconto} reais em desconto!");
}

Com isso, temos nossa condição inicial.

Configurando o caminho alternativo

Agora, vamos pensar no caminho alternativo (else). Se o valor da compra for menor que 300 reais, precisamos saber quanto falta para atingir os 300 reais. Para isso, criaremos uma variável do tipo double chamada diferenca, que será igual a 300.00 menos (-) valorCompra.

Por que conseguimos fazer isso? Porque, no caso do bloco else, vamos considerar todos os casos em que o valor da compra é menor que 300 reais.

Por fim, vamos imprimir com Console.WriteLine() a mensagem $"Faltam {diferenca} reais para você ganhar desconto na sua compra!", utilizando interpolação.

// código omitido

if (valorCompra > 300.00)
{
    double desconto = valorCompra * 0.1;
    Console.WriteLine($"Você ganhou {desconto} reais em desconto!");
}
else
{
    double diferenca = 300.00 - valorCompra;
    Console.WriteLine($"Faltam {diferenca} reais para você ganhar desconto na sua compra!");
}

Após isso, executaremos o código. Se o valor da compra for 545 reais, a saída será "Você ganhou 54,5 reais em desconto!". Por outro lado, se o valor da compra for 245 reais, por exemplo, a saída será "Faltam 55 reais para você ganhar desconto na sua compra!".

Utilizando o operador AND

Agora, vamos pensar em combinar condições.

Suponha que o cliente só consegue 10% de desconto se comprar mais de 300 reais e for um cliente VIP. Vamos declarar uma variável bool clienteVip e defini-la como true por enquanto.

// código omitido

double valorCompra = 245.00;
bool clienteVip = true;

// código omitido

Agora, o bloco if será verdadeiro apenas se duas condições forem verdadeiras: se o valor da compra for maior do que 300 reais; e se o cliente for VIP.

Para isso, utilizaremos o operador AND, representado por &&.

// código omitido

if (valorCompra > 300.00 && clienteVip)
{
    double desconto = valorCompra * 0.1;
    Console.WriteLine($"Você ganhou {desconto} reais em desconto!");
}

// código omitido

Se ambas as condições forem verdadeiras, exibiremos a mensagem $"Você ganhou {desconto} reais em desconto!". Caso contrário, cairemos na outra condição. Ao executar o código, observamos que faltam 55 reais para ganhar desconto, pois o valor da compra está em 245 reais. Assim, a primeira condição é falsa. Logo, a combinação das duas será falsa, pois utilizamos o operador AND.

Utilizando o operador OR

Se quiséssemos usar o operador OR, representado por ||, entraríamos no primeiro if, pois teríamos uma condição falsa ou uma condição verdadeira.

Observação: se uma das condições for verdadeira, entramos no bloco if.

// código omitido

if (valorCompra > 300.00 || clienteVip)
{
    double desconto = valorCompra * 0.1;
    Console.WriteLine($"Você ganhou {desconto} reais em desconto!");
}

// código omitido

Ao executar, visualizamos que o cliente ganhou 24,5 reais em desconto.

Utilizando a estrutura else if

No exemplo anterior, temos uma expressão condicional bem estruturada, pois a condição é verdadeira ou falsa, resultando em apenas dois caminhos possíveis.

Entretanto, podemos ter vários caminhos nos blocos if e else. Para isso, utilizamos else if, seguido de uma nova condição que desejamos aplicar.

Podemos verificar se o valor da compra é maior que 300 reais. Suponha que a pessoa não atingiu 300 reais, mas atingiu 200 reais. Nesse caso, enviaremos uma amostra grátis ou um brinde. Portanto, exibiremos a mensagem "Parabéns! Você ganhou um brinde!".

// código omitido

if (valorCompra > 300.00 || clienteVip)
{
    double desconto = valorCompra * 0.1;
    Console.WriteLine($"Você ganhou {desconto} reais em desconto!");
}
else if (valorCompra > 200.00)
{
    Console.WriteLine("Parabéns! Você ganhou um brinde!");
}
else
{
    double diferenca = 300.00 - valorCompra;
    Console.WriteLine($"Faltam {diferenca} reais para você ganhar desconto na sua compra!");
}

Queremos saber primeiro se o cliente pagou mais de 300 reais ou se é um cliente VIP. Se nenhuma dessas condições for verdadeira, mas o valor da compra for maior que 200 reais, ele se enquadra no caso que criamos. Ele não está entre os que gastaram mais de 300 reais, mas está entre os que gastaram entre 200 e 300 reais.

Depois, temos o else, que se aplica a quem fez uma compra menor que 200 reais. Para essas pessoas, imprimimos o que falta para alcançar o desconto, pois, no marketing, as empresas focam em clientes que fazem compras com valores mais altos. Assim, temos três casos:

  1. Quem gastou mais de 300 reais;
  2. Quem gastou entre 200 e 300 reais;
  3. Quem gastou menos de 200 reais.

Cada vez que encadeamos if e else if, criamos mais um caminho possível para a execução do programa. Para testar, podemos alcançar a condição de "Parabéns! Você ganhou um brinde!" se o valor da compra for 245 reais e clienteVip for false.

Conclusão

Com isso, entendemos como funcionam as condicionais, sendo if e else as principais na lógica de programação. No entanto, também temos a opção de trabalhar com switch e case.

Na sequência, vamos explorar melhor esse tipo de expressão!

Sobre o curso Praticando C#: condicionais com if/else e switch/case

O curso Praticando C#: condicionais com if/else e switch/case possui 32 minutos de vídeos, em um total de 18 atividades. Gostou? Conheça nossos outros cursos de .NET em Programação, ou leia nossos artigos de Programação.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda .NET acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas