Aula 2.4 - condições em C
Bom se você leu a aula 1.6 e 1.7 vai entender rapidinho a aula de hoje - lembrando que embora a lógica seja a mesma, os comandos mudam! É extremamente importante que você dê uma olhada na aula 1.6 ou estude tabela verdade.
Para aprender sobre condições, primeiramente precisamos fixar que todo valor lógico diferente de 0 (zero) é verdadeiro, pois o 0 (zero) em C foi estipulado como um valor lógico falso. Sendo assim, é comum utilizar o 1 (um) como valor lógico verdadeiro. E seguidamente, é preciso aprender os sinais dos operadores relacionais:
- == igualdade
- > maior que
- >= maior ou igual que
- < menor que
- <= menor ou igual que
- != diferente de
Tomando o operador de igualdade == como exemplo:
Na linha quatro retorna 0 informando que: 5 não é igual a 4
Na linha cinco retorna 1 informando que: 5 é igual a 5
E na linha seis retorna 0 informando que: 4 não é igual a 5
Teste com os outros operadores para fixar isso!
Chegou a hora de aprender uma instrução que vai seguir com você pelo resto da vida de programador, o if e else - traduzindo livremente "se" e "senão". Basicamente funciona da seguinte maneira, se (if) a condição for verdadeira executa-se a primeira condição, senão (else) executa a segunda condição - note que a segunda condição é opcional. Confira um exemplo:
Se remover o trecho
else{
printf("Falso");
}
o programa ainda rodará, mas não imprimirá nada na tela pois 5 não é igual a 4, sendo assim a condição é falsa e não é impresso o "verdade".
Na imagem abaixo você confere como é utilizado "if dentro de if" e a utilização de operadores lógicos como:
&& E lógico (exemplo: "a && b" é o mesmo que dizer "a e b")
|| OU lógico (exemplo: "a || b" é o mesmo que dizer "a ou b")
Note que o operador lógico && na linha 8 significa: "se(n1 for maior ou igual a n2 e n1 maior ou igual a n3) faça a instrução a seguir" e na linha 11 esse "else if" significa 'senão se...' ou seja se a condição do if da linha 8 for falsa então confere-se a condição da linha 11.
Note que os operadores lógicos e relacionais possuem uma ordem de precedência que é:
1º < <= > >=
2º == !=
3º &&
4º ||
5º ?:
Sendo assim em uma condição do tipo (x!=10 || y>1 && y<10) será compilada da seguinte forma: ((x!=10) || ((y>1) && (y<10))) .
Você provavelmente está se perguntando que operador é esse "?:" ... bom, ele é um operador que espera por três argumentos onde a condição é avaliada, se for verdade retorna primeira expressão e se for falso retorna segunda expressão, exemplo: condição ? expressão1 : expressão2
No exemplo da imagem acima ele retorna o valor 6 ou seja como a primeira expressão é verdadeira ele executa apenas ela.
Bom, agora aprenderemos outro comando o switch, algo parecido com a aula 1.8 .
Para entendermos ele confira um exemplo de sua utilização abaixo primeiramente:
Como podem observar entre as linha 4 e 7 foi montado um menu para que o usuário escolha sua fruta predileta dentre as listadas. Na linha 9 foi feito leitura do número correspondente a fruta predileta para que depois seja inserido na linha 10 dentro do comando switch. Sendo assim, switch(fruta) significa "escolha(fruta)", no caso a fruta escolhida foi a 2, então "escolha(2)", em seguida as condições são checadas. Como a fruta escolhida foi 2 vai imprimir na tela "amo limao", o comando seguinte 'break' serve para parar e sair do switch, pois se você rodar sem ele... vai imprimir todas as condições em vez da condição escolhida. Por fim, o comando default serve para impor uma condição padrão, ou seja no exemplo foi utilizado para que se a pessoa digitar algo diferente de 1, 2 ou 3 imprimir na tela que a escolha está errada.
Bom, é isso... até a próxima!
>> Próxima aula, clique aqui.
COMENTÁRIOS