Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Resumo Condição: ********************************************************************************* OBS: Essa matéria cai >> somente << na P1, P2 e P3! :D ********************************************************************************* Descrição: São comandos que permitem criar condições pra tratar um ou vários casos em sequência. São 3 tipos de comando: if, else if, else. if e else if estão sempre acompanhados de uma condição entre parênteses. Enquanto o else é opcional e >>NUNCA<< possui condição! ------------------------------------//----------------------------------------- - Como criar uma condição? Primeiro passo é analisar no enunciado qual seria a condição e em quantos casos vamos precisar dividir. - Condição com 2 casos: Ex: Faça um programa que lê a nota de um aluno e exibe na tela se foi aprovado ou reprovado. Considere a nota como um número inteiro e pra ser aprovado o aluno deve ter nota maior que 5. int main (void){ int nota; printf("Digite a nota: \n"); scanf("%d",¬a); if(nota > 5){ puts("Aprovado!"); } else{ puts("Reprovado!"); } return 0; } OBS: A função puts exibe mensagens na tela assim como a printf, mas com a vantagem de ter o >> \n << embutido. (Sempre pula uma linha automaticamente!) Existem duas possibilidades: Aluno é aprovado ou reprovado e o que vai determinar isso é se a sua nota é maior que 5 ou não. Então é exatamente essa a nossa condição! Super simples identificar a condição né? :D Analisando condições: >>Se<< a nota for maior que 5: Imprime a mensagem "Aprovado!" (1º caso) >>Senão<< Imprime a mensagem "Reprovado!" (2º caso) Essa é uma condição que possui 2 casos! OBS: Lembrando que >>TODA<< condição, independente da quantidade de casos, começa sempre com >> if <<! if(nota > 5){ puts("Aprovado!"); } else{ puts("Reprovado!"); } Percebe que se a condição do primeiro caso for falsa, ou seja, a nota do aluno for menor ou igual a 5, vai cair >>Obrigatoriamente<< no segundo caso? Então não precisamos criar uma condição pro segundo caso! Quando isso acontece, usamos >> else <<! ------------------------------------//---------------------------------------- - Condição com 1 caso: EX: Faça um programa que leia a matrícula e a nota de um aluno e exiba uma mensagem parabenizando se tirou nota maior que 7. A mensagem deve conter a matrícula do aluno. int main (void){ int nota, mat; printf("Digite matricula e nota: \n"); scanf("%d%d",&mat, ¬a); if(nota > 7){ printf("Matricula: %d - Parabens!\n",mat); } return 0; } Analisando a condição: >>Se<< a nota for maior que 7: Imprime a mensagem de parabéns. (1º caso) Percebe que dessa vez não temos mais nenhum outro caso pra tratar? O enunciado só pediu pra tratar nota maior que 7, uma única condição, então se a nota for menor ou igual a 7, vamos simplesmente ignorar e encerrar o programa! :) OBS: Lembrando que o else é opcional! Por isso não tem necessidade de usar else nesse caso! -------------------------------------//-------------------------------------- - Combinação de condições: (Conectores Lógicos) Existe uma forma de juntar duas ou mais condições no mesmo if ou else if. - Conector && (AND): A condição só será verdadeira se >> AMBOS << são verdadeiros! EX: Se a nota é maior que 8 >> E << a média é maior que 5, imprime a mensagem "Parabens": if(nota > 8 && media > 5){ puts("Parabens!"); } OBS: A condição do if só será verdadeira se a nota do aluno for maior que 8 >> E << a média for maior que 5! Ou seja, se uma dessas condições for Falsa o bloco do if >> NÃO << será executado! - Conector || (OR): EX: Se a nota é maior que 8 >> OU << a média é maior que 5, imprime a mensagem "Parabens": if(nota > 8 || media > 5){ puts("Parabens!"); } OBS: A condição do if será verdadeira se >> PELO MENOS << uma das condições for verdadeira! Nota maior que 8 >> OU << média maior que 5! ------------------------------------//--------------------------------------- - Condição com 3 casos: EX: Faça um programa que lê a nota de um aluno e exibe na tela se foi aprovado, se está em PF ou reprovado. Considere que pra ser aprovado o aluno deve ter nota maior ou igual a 5 e se caso sua nota for menor que 3 está reprovado. int main (void){ int nota; printf("Digite a nota: \n"); scanf("%d",¬a); if(nota >= 5){ puts("Aprovado!"); } else if(nota >= 3){ puts("Em PF"); } else{ puts("Reprovado!"); } return 0; } Analisando condições: >>Se<< a nota for maior ou igual a 5: Imprime a mensagem "Aprovado!" (1º caso) >>Se<< a nota foi maior ou igual a 3: Imprime a mensagem "Em PF" (2º caso) >>Senão<<: Imprime a mensagem "Reprovado!". (3º caso) Percebe que com exceção da primeira condição, as outras dependem do resultado da anterior? Como se fosse uma sequência de condições? :) Como já sabemos, o primeiro caso é sempre um >>if<<, daí em diante precisamos analisar! Se a primeira condição for falsa, quer dizer que a nota do aluno é menor que 5 né? Então seguindo a >> Sequência << a próxima condição é se a nota for maior ou igual a 3, ou seja, o 2º caso também depende de uma condição! Por isso usamos >>else if<<! OBS: Escrever else if(nota >= 3 && nota < 5) é um erro comum em toda P1! Sempre leve em consideração o resultado da condição anterior! Pois se a primeira condição é falsa, já quer dizer que a nota do aluno é menor que 5! ******************************************************************************* Regra Importante: - A condição do primeiro caso é >>SEMPRE<< um if! - Quando o segundo caso em diante precisar de uma condição e for >>Continuação/Sequência<< do caso anterior: Use else if - Se o último caso não depender de nenhuma condição e for >>Continuação/Sequência<< do caso anterior: Use else OBS: Lembrando que o else é opcional! E se o último caso também precisar de uma condição também será um else if! ******************************************************************************* E pra fechar, se o 1º e 2º casos são falsos, quer dizer que a nota é menor que 3 e se esse for o caso, não precisamos tratar mais nenhuma condição, então é só usar um else no último caso! OBS: Um erro comum e fatal é simplesmente esquecer dessas regras e usar vários "if" em todos os casos. Lembrando que isso é questão certa em toda P1! ------------------------------------//----------------------------------------- - Atalho nas condições: Quando a condição só possui uma >> única << linha de código dentro do seu bloco. Podemos >> Omitir << as chaves da condição! EX: Ao invés de escrever: if(nota >= 5){ puts("Aprovado!"); } Usando o atalho: if(nota >= 5) puts("Aprovado!"); Melhorou um pouco, mas podemos melhorar esse atalho ainda mais! Não seria mil vezes melhor se pudesse escrever o código tudo na mesma linha que nem uma frase em português? :D EX: >>Se<< a nota é maior ou igual a 5. >>Então<< imprime a mensagem "Aprovado!" if(nota >= 5) puts("Aprovado!"); Isso funciona porque o compilador ignora espaços ou linhas em branco! Então pra simplificar, podemos colocar o que será executado ao lado da condição! Então como seria o exemplo da condição com 3 casos usando esse atalho? int main (void){ int nota; printf("Digite a nota: \n"); scanf("%d",¬a); if(nota >= 5) puts("Aprovado!"); else if(nota >= 3) puts("Em PF"); else puts("Reprovado!"); return 0; } OBS: Esse atalho só funciona em condições com uma >> Única << linha! Não esqueça que se a condição tiver mais de uma linha, temos que colocar as chaves obrigatoriamente! E só recomendo usar esse atalho se você achar essa forma de escrever mais tranquila! :) ------------------------------------//-----------------------------------------
Compartilhar