Exercício – Implementar o operador condicional
- 7 minutos
Suponha que você precise determinar rapidamente se a compra de um cliente está qualificada para um desconto promocional. Os detalhes da promoção indicam que quando um valor de compra é maior que 1.000 euros, a compra se qualifica para um desconto de 100 euros. Se o valor da compra for de até 1.000 euros, a compra se qualifica para um desconto de 50 euros.
Embora você certamente possa usar a construção de ramificação if ... elseif ... else para expressar essa regra de negócios, usar o operador condicional para avaliar a qualificação para o desconto promocional pode ser uma opção melhor. O operador condicional usa um formato compacto que economiza algumas linhas de código e, possivelmente, torna a intenção do código mais clara.
O que é o operador condicional?
O operador condicional?: avalia uma expressão booliana e retorna um dos dois resultados, dependendo se a expressão booliana é avaliada como verdadeira ou falsa. O operador condicional normalmente é chamado de operador condicional ternário.
Este é o formato básico:
<evaluate this condition> ? <if condition is true, return this value> : <if condition is false, return this value>
Dedique um minuto para considerar como aplicar o operador condicional ao cenário de desconto promocional. Sua meta é exibir uma mensagem para o cliente que mostra o percentual de desconto concedido. O valor do desconto será determinado analisando se o cliente gastou mais de 1.000 euros na compra efetuada.
Adicionar código que usa um operador condicional
Verifique se você tem o arquivo Program.cs vazio aberto no Visual Studio Code. Se necessário, abra o Visual Studio Code e conclua as seguintes etapas para preparar o arquivo Program.cs no Editor:
- No menu Arquivo, selecione Abrir Pasta.
- Use a caixa de diálogo Abrir Pasta para navegar e, em seguida, abra a pasta CsharpProjects.
- No painel EXPLORER do Visual Studio Code, selecione Program.cs.
- No menu Seleção do Visual Studio Code, escolha Selecionar Tudo e pressione a tecla Delete.
Digite o código a seguir no Editor do Visual Studio Code.
int saleAmount = 1001; int discount = saleAmount > 1000 ? 100 : 50; Console.WriteLine($"Discount: {discount}");No menu Arquivo do Visual Studio Code, selecione Salvar.
O arquivo Program.cs deve ser salvo antes de criar ou executar o código.
No painel EXPLORER, para abrir o Terminal no local da pasta TestProject, clique com o botão direito do mouse em TestProject e selecione Abrir no Terminal Integrado.
Um painel do Terminal com um prompt de comando deve estar aberto. O prompt de comando deve exibir o caminho da pasta TestProject.
No prompt de comando do Terminal, para executar seu código, digite dotnet run e pressione Enter.
Ao executar o código, você verá a seguinte saída:
Discount: 100
Usar o operador condicional embutido
Você pode compactar ainda mais esse código eliminando a variável temporária discount.
Atualize seu código no Editor do Visual Studio Code da seguinte maneira:
int saleAmount = 1001; // int discount = saleAmount > 1000 ? 100 : 50; Console.WriteLine($"Discount: {(saleAmount > 1000 ? 100 : 50)}");No menu Arquivo do Visual Studio Code, selecione Salvar.
No prompt de comando do Terminal, para executar seu código, digite dotnet run e pressione Enter.
Observe que a saída é a mesma.
Reserve um minuto para analisar a instrução
Console.WriteLine()atualizada.Observe que é necessário encapsular toda a instrução do operador condicional entre parênteses. Os parênteses garantem que o runtime entenda sua intenção, que é exibir o resultado condicional em vez do resultado da avaliação da condição (saleAmount > 1000).
Observação
Embora este exemplo específico seja compacto e mostre essa possibilidade, ele é um pouco mais difícil de ler. Nem sempre é uma boa ideia combinar linhas de código, especialmente quando afeta negativamente a legibilidade geral do código. Geralmente, essa é uma decisão subjetiva.
Recapitulação
Você deve se lembrar dos seguintes fatos sobre o operador condicional:
- Você pode usar o operador condicional para reduzir o tamanho do código, mas deve garantir que o código resultante seja fácil de ler.
- Você pode usar o operador condicional quando precisar retornar um valor baseado em uma condição binária. Seu código retornará a primeira opção quando a condição for avaliada como true e retornará a segunda opção quando a condição for avaliada como false.