Muito bom! Também existe uma forma alternativa do uso do if, que você pode usar ao chamar uma função, por exemplo:
argumentos ? verdadeiro : falso
bool condicao = true; MessageBox.Show(condicao ? "É verdade!" : "Mas que mentiroso!");
Como visto no exemplo acima, caso a variável condicao tenha o valor true, a primeira string "É verdade!" será usada na caixa de mensagem, caso contrário, a string "Mas que mentiroso!" é a que será utilizada na mesma.
EDIT: Você também pode colocar uma condição dentro da outra usando esse método, mas fica por sua conta experimentar ![]()




info
Grupo: Lenda
Registrado: 03/10/06
Posts: 2.6k
Reputação: +309
Gênero: Masculino
Char no Tibia: Knight Orion
Instruções de seleção
Uma instrução de seleção é uma parte de código que altera o fluxo de acordo com o valor de uma condição, ou seja, há um teste para determinar se algo é true ou false e o resultado é processado de acordo com isso. No C#, temos 2 tipos: o bloco if-else e o bloco switch.
If-Else
O if-else executa uma instrução com base em um teste que retorne um valor true. Em um exemplo bem simples, eu declaro uma variável lendo da tela e escrevo algo de acordo com o valor dela:
http://pastebin.com/JCxKsKHL
São usadas todas as estruturas if-else.
O if inicialmente testa se o número é maior que 0: caso ele seja, escreve na tela que o número é positivo e ignora todo o resto da estrutura; caso não seja, o código é ignorado e pula para o else seguinte.
O else seguinte testa se o número é menor que 0: caso ele seja, escreve na tela que o número é negativo e ignora o resto da estrutura; caso não seja, o código é ignorado e pula para o else seguinte.
O próximo else, que não contém um teste, então é sempre executado quando nenhum dos testes anteriores seja verdadeiro, neste caso se o número for igual a 0, e escrene na tela que o número é neutro.
é possível também usar um if-else dentro do else para obter o mesmo resultado. Este bloco teria exatamente a mesma saída que no exemplo acima:
http://pastebin.com/4PT5DBgP
Um bloco if não precisa ter um else. Se, por exemplo, você quer escrever na tela que o número é positivo se for maior que 0, mas não fazer nada caso não seja, você pode simplesmente usar apenas o if:
http://pastebin.com/PJH7EEjj
Se quiser também que ele apenas diga se é positivo ou negativo e ignore o zero, basta usar apenas o if e o else if:
http://pastebin.com/nPUs1zP0
Em um terceiro caso, se deseja apenas dizer que o número é ou "positivo" ou "neutro ou negativo", você pode fazer da seguinte maneira:
http://pastebin.com/XwPjeN09
Aqui, em um exemplo mais complexo e completo, eu escrevo se um caractere informado é letra maiúscula, letra minúscula, número, sinal de pontuação ou nenhum destes:
http://pastebin.com/76wFDyin
As funções que talvez você não conheça estão comentadas. Repare no cascateamento entre um if e outro que está dentro.
Existe um "encurtamento" do if (popularmente chamado de if shortcut) que é basicamente uma estrutura if-else para definir um valor de uma forma mais curta e economizando espaço. Por exemplo, você deseja ver se um aluno foi reprovado ou aprovado pegando 2 notas fazendo a média aritmética:
http://pastebin.com/05Dbcm9K
A sintaxe é "<condição> ? <valor caso true> : <valor caso false>". Neste caso, a condição é "(n1 + n2) / 2 >= 7", ou seja, a média das notas lidas for maior ou igual a 7. Caso true, retorna a palavra "aprovado", caso false retorna a palavra "reprovado".
Switch
O switch executa uma instrução a partir de uma lista de ações (chamada de seção switch) de acordo com o valor de uma variável. A palavra para o teste se chama case e a ação padrão (que tem função semelhante ao else) se chama default. Em um exemplo bem simplista:
http://pastebin.com/viqQLD4B
é possível pular de um case para outro se não houver ações, porém é proibido que as ações não tenham um break antes do próximo case, inclusive na última ação (o default, geralmente). Também é possível usar expressões (repare no 5-2 que equivale a 3):
http://pastebin.com/kNWGVm2a
Há também a palavra "goto", que continua a ação em outro case. Cuidado com loops infinitos. Em um exemplo adaptado do site da Microsoft:
http://pastebin.com/pyyuQZXd
O preço dos cafés é crescente de acordo com o tamanho: 0.25 para o café pequeno, 0.50 para o grande e 0.75 para p pequeno. Repare o reaproveitamento de código, algo que é bom (mas em tão pequena escala não faz diferença). Veja o mesmo exemplo, com o mesmo resultado, porém sem reaproveitamento de código:
http://pastebin.com/sD5uuq8G
O resultado mostrado no final será o mesmo, mas o método para chegar neste resultado muda.
Como o else no bloco do if, o default é completamente opcional. Você pode tratar isso em outro lugar, como neste exemplo do café, há um teste para indicar o preço do café se ele for maior que 0, ou seja, caiu em algum dos cases. é possível omitir o default e usar um else para avisar que o usuário escolheu um número inválido.
Utilizar o if em conjunto com o switch é muito eficiente e prático
Editado Dezembro 29 por Lordfire