Exercício - Implementar o operador condicional
- 7 minutos
Suponha que você precise determinar rapidamente se a compra de um cliente é elegível para um desconto promocional. Os detalhes da promoção indicam que quando um valor de compra é superior a 1000 euros, a compra é elegível para um desconto de 100 euros. Se o valor da compra for de 1000 euros ou menos, a compra é elegível para um desconto de 50 euros.
Embora você certamente possa usar a if ... elseif ... else construção de ramificação para expressar esta regra empresarial, usar o operador condicional para avaliar a elegibilidade para o desconto promocional pode ser uma escolha melhor. O operador condicional utiliza um formato compacto que poupa algumas linhas de código e pode tornar a intenção do código mais clara.
O que é o operador condicional?
O operador?: condicional avalia uma expressão booleana e retorna um dos dois resultados, dependendo se a expressão booleana é avaliada como true ou false. O operador condicional é comumente referido como o 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>
Reserve um minuto para considerar como você aplicaria o operador condicional ao cenário de desconto promocional. Seu objetivo é exibir uma mensagem para o cliente que mostre sua porcentagem de desconto. O valor do seu desconto será baseado no facto de terem gasto mais de 1000 euros na sua compra.
Adicionar código que usa um operador condicional
Verifique se você tem um arquivo de Program.cs vazio aberto no Visual Studio Code. Se necessário, abra o Visual Studio Code e conclua as seguintes etapas para preparar um arquivo de Program.cs no Editor:
- No menu Arquivo , selecione Abrir pasta.
- Use a caixa de diálogo Abrir pasta para navegar até a pasta CsharpProjects e abri-la.
- No painel Explorador do Visual Studio Code, selecione Program.cs.
- No menu Seleção de código do Visual Studio, selecione Selecionar tudo e pressione a tecla Delete.
Digite o seguinte código no Editor de Códigos do Visual Studio.
int saleAmount = 1001; int discount = saleAmount > 1000 ? 100 : 50; Console.WriteLine($"Discount: {discount}");No menu Ficheiro do Visual Studio Code, selecione Guardar.
O arquivo Program.cs deve ser salvo antes de criar ou executar o código.
No painel EXPLORER, para abrir um Terminal no local da pasta TestProject, clique com o botão direito do mouse em TestProject e selecione Abrir no Terminal Integrado.
Um painel Terminal que exibe um prompt de comando agora deve estar aberto. O prompt de comando deve exibir o caminho da pasta para o local da pasta TestProject.
No prompt de comando do Terminal, para executar o código, digite dotnet run e pressione Enter.
Quando executar o código, deverá ver o seguinte resultado:
Discount: 100
Usar o operador condicional embutido
Você pode compactar esse código ainda mais, eliminando a variável discounttemporária .
Atualize seu código no Editor de Códigos do Visual Studio da seguinte maneira:
int saleAmount = 1001; // int discount = saleAmount > 1000 ? 100 : 50; Console.WriteLine($"Discount: {(saleAmount > 1000 ? 100 : 50)}");No menu Ficheiro do Visual Studio Code, selecione Guardar.
No prompt de comando do Terminal, para executar o código, digite dotnet run e pressione Enter.
Observe que a saída é a mesma.
Reserve um minuto para examinar a declaração atualizada
Console.WriteLine().Observe que é necessário envolver toda a instrução do operador condicional entre parênteses. Os parênteses garantem que o tempo de execução compreenda sua intenção, que é exibir o resultado condicional em vez do resultado da avaliação da condição (saleAmount > 1000).
Nota
Embora este exemplo em particular seja compacto e mostre o que é possível, é um pouco mais difícil de ler. Nem sempre é uma boa ideia combinar linhas de código, especialmente quando isso afeta negativamente a legibilidade geral do seu código. Esta é muitas vezes 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 facilmente legível.
- 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.