if ternário em C#
Olá pessoal.
Trazendo uma forma interessante sobre como fazer um código alternativo if, else em c# utilizando operador ternário. Resumindo... é poder fazer um if e else compactados em uma linha.
Exemplo:
Esse seria um código if, else no método tradicional:
if(condicao)
{
codigo a;
}
else
{
codigo b;
}
e esse seria o código com if ternário:
condicao ? codigo a: codigo b;
Obs.: o codigo logo após ao sinal de interrogação representa o if e o depois dos dois pontos representa o else.
Não encontrei informações sobre como fazer um if, else if, else utilizando essa estrutura, mas mesmo assim é algo interessante de usar.
Mais informações sobre o operador condicional ternário aqui: https://learn.microsoft.com/pt-br/dotnet/csharp/language-reference/operators/conditional-operator
André Filipe @andresantosO ternário é uma forma abreviada do
if else. Logo, não é possível escrever apenasif.
Veja que poderá definirelse ifeelse:int numero = 1; string resultado = numero > 0 ? "número positivo" : numero < 0 ? "número negativo" : "igual a zero"; Console.WriteLine(resultado);
Em resposta aajsalmeida⬆:Lucas Ferreira @lksferreiraE tem o if com apenas um termo também:
if (condicao) codigo;
bool teste = true; if(teste) Console.WriteLine("Teste verdadeiro");Nesse caso não precisamos atribuição
- TThiago Nebuloni @thiagonebuloni
Esse é meu favorito kkkk tento usar sempre que possível.
Funciona com o else também, na mesma linha.
Em resposta aajsalmeida⬆:Larissa Leal @LariLealO operador ternário facilita muito em casos quando o código é pequeno, mas em casos com várias condições acho que piora a legibilidade do código.
Se optar por utilizar com mais de uma condição é recomendado o parênteses, para não causar tanta confusão ao ler
Tem um exemplo de como usar varias condições aqui:
https://www.youtube.com/watch?v=uAyfj46vOJE&t=385s
No minuto 06:25
Em resposta aajsalmeida⬆:Luis Guilherme Vieira Neves @LuisGuilhermeNevesÉ recomendado usar o operador Ternário em ocasiões específicas, é igual o uso do switch onde não pode ser substituido pelo if else, mas o switch em certas regiões é melhor para dar mais legibilidade ao código.
Este operador pode ser útil em situações em que desejamos atribuir a uma variável, valores diferentes de acordo com determinada condição. Já vi sendo bastante utilizado quando precisavam dar uma instrução a uma expressão e utilizar if else deixaria muito extenso e incoveniente pro caso, então utilizavam os ternários.
O @andresantos deu um bom exemplo de uma situação onde atribuimos uma variável uma condição ternária, e dependendo do valor retornado, já muda o valor da variável que está carregando a expressão com o ternário.
int numero = 1; string resultado = numero > 0 ? "número positivo" : numero < 0 ? "número negativo" : "igual a zero"; Console.WriteLine(resultado);- Sem o uso do ternário alonga muito o código
if(numero > 0) { resultado = "número positivo"; } else if(numero < 0) { resultado = "numero negativo" } else { resultado = "igual a zero" } Console.WriteLine(resultado);
Em resposta aajsalmeida⬆:Saulo Emídio @sauloemidioIsso mesmo, parabéns pela contribuição!
Em resposta aajsalmeida⬆:Carolina Castilhos @carolinacastilhosEu vi isto este final de semana no curso da udemy e achei bem interessante o uso!
O exemplo que o professor deu em aula foi:var nota2 = 9.0;
bool bomComportamento = true;
string resultado2 = nota2 >= 7.0 && bomComportamento ? "Aprovado" : "Reprovado";
Console.WriteLine(resultado2);nesse caso de nota de aluno, usamos muito if/else, mas no exemplo acima veio muuuito a calhar o uso do operador ternário!
- LEm resposta aajsalmeida⬆:LENNAN @lennanrnz
Isso mesmo, parabéns pela contribuição!