# 6 - Condições

Agora iremos falar sobre condições,mas iremos te mostrar a tabela de comparação para se utilizar em conjunto com condições.

Operadores de comparação:

Operadores Descrição Exemplos
== Igual a 4 == 4 <true> 4 == 5 <false>
!= Diferente de 4 != 4 <false> 4 != 5 <true>
> Maior que 4 > 5 <false> 4 > 3 <true>
< Menor que 4 < 5 <true> 4 < 3 <false>
>= Maior ou igual a 5 >= 5 <true> 6 >= 5 <true>
<= Menor ou igual a 6 <= 5 <false> 6 <= 6 <true>
&& E lógico 2 < 5 <true> && 2 <= 4 <true> = <true>
|| Ou lógico 2 < 5 <true> || 5 <= 4 <false> = <true>

Condições são comparações que retornam verdadeiro ou falso para executar ou não um bloco(escopo).

if (se) else if (se senão) else (senão)





























#include <iostream>

int main () 
{
    /*|--------------------------------------|
     *|                                      |
     *|           He4rt Developers           |
     *|                                      |
     *|--------------------------------------|
     */

    char sexo = 'M';    // Declaramos a variável `sexo` do tipo `char` e inicializamos com o caractere `M`

    // Queremos comparar para saber se `sexo` é masculino(M) ou feminino(F)
    if(sexo == 'M')     // Verificando se sexo é igual ao caractere M
    {
        // Se a comparação for `verdadeira`, que é o nosso caso, entrará neste escopo
        std::cout << sexo << " e masculino" << std::endl;
    } 
    // if, else if e else são uma sequência, então assim que o escopo de uma condição acabar podemos colocar em sequência
    else // Como se tem apenas duas opções `M` e `F`, não precisamos usar o `else if`, em caso de precisar fazer outras comparações em uma mesma cadeia, teríamos que usar `else if` e `else` apenas para a última opção que não necessita de comparação
    {
        std::cout << sexo << " e feminino" << std::endl;
    }
}





























#include <iostream>

int main () 
{
    /*|--------------------------------------|
     *|                                      |
     *|           He4rt Developers           |
     *|                                      |
     *|--------------------------------------|
     */

    float nota; // Declaramos a variável `nota` do tipo `float`

    std::cout << "Digite a sua nota: " << std::endl;// Saida de dados
    std::cin >> nota;// Entrada de dados

    if(nota >= 6.0f)  // Se a nota for maior ou igual a 6, o aluno está aprovado
    {
        std::cout << "Aprovado!" << std::endl;
    } else if(nota >= 5.0f) // Se a nota do aluno for maior ou igual a 5 poderá fazer a prova de recuperação (Não precisamos utilizar nota < 6.0f neste caso pois o programa irá ler essa condição APENAS se a primeira comparação retornar false)
    {
        std::cout << "Prova de recuperacao!" << std::endl;
    } else { // Se a nota do aluno for abaixo de 5, ele esta reprovado
        std::cout << "Reprovado!" << std::endl;
    }
}

































#include <iostream>

int main () 
{
    /*|--------------------------------------|
     *|                                      |
     *|           He4rt Developers           |
     *|                                      |
     *|--------------------------------------|
     */

    /* 
     * Poderíamos ter utilizado `else if` na ultima condição, mas não tem 
     * necessidade por conta que se o aluno não tem nota acima de 5,
     * todo outro tipo de resultado é a reprovação.
     */
    float nota; 

    std::cout << "Digite a sua nota: " << std::endl;
    std::cin >> nota;

    if(nota >= 6.0f)  
    {
        std::cout << "Aprovado!" << std::endl;
    } else if(nota >= 5.0f) 
    {
        std::cout << "Prova de recuperacao!" << std::endl;
    } else if(nota < 5.0f) { 
        std::cout << "Reprovado!" << std::endl;
    }
}

# Operadores Lógicos





























#include <iostream>

int main () 
{
    /*|--------------------------------------|
     *|                                      |
     *|           He4rt Developers           |
     *|                                      |
     *|--------------------------------------|
     */

    std::string nome;

    std::cout << "Digite seu nome: " << std::endl;
    std::getline(std::cin, nome); // Não tem necessidade do std::cin.ignore() pois não tem entrada de dados de outro tipo anteriormente.

    if(nome.size() < 0) // Verificando se a quantidade de caracteres for menor que 0,ou seja, ERRO
        std::cout << "ERRO!" << std::endl; // Quando temos apenas uma linha, podemos omitir o escopo
    else if(nome.size() >= 0 && nome.size() <= 5) // Quantidade de caracteres maior que 0 E menor que 5
        std::cout << "Existe entre 0 e 5 caracteres nesta string" << std::endl;
    else if(nome.size() > 5 && nome.size() <= 10)
        std::cout << "Existe entre 6 e 10 caracteres nesta string" << std::endl;
    else 
        std::cout << "Existe mais de 10 caracteres nesta string" << std::endl;

    // std::string é uma classe e possui funções próprias para manipular,no caso o size(), na seção de funções você irá entender este conceito.
}

# Switch

Para facilitar a utilização de if/else if/else temos o switch, que executa um certo bloco dependendo da condição no switch

A utlização do switch e totalmente opcional e é útil apenas para certos casos



















































#include <iostream>

int main () 
{
    /*|--------------------------------------|
     *|                                      |
     *|           He4rt Developers           |
     *|                                      |
     *|--------------------------------------|
     */
     
    int numero1, numero2, resultado;
    char opcao;

    std::cout << "Digite um numero: \n";
    std::cin >> numero1;

    std::cout << "Digite um segundo numero: \n";
    std::cin >> numero2;

    std::cout << "Digite uma opção: (A) Soma / (B) Subtracao / (C) Multiplicacao / (D) Divisao \n";
    std::cin >> opcao;

    switch(opcao) // Switch de opcao
    {
        case 'A': // condição: true = executa o bloco / false = pula para o próximo caso e seu bloco
        {
            resultado = numero1 + numero2;
            break; // Em switch, precisamos utilizar o break para nao carregar as outras condicoes em sequencia,falaremos mais sobre o break na secao de loop
        }
        case 'B': 
        {
            resultado = numero1 - numero2;
            break;
        }
        case 'C': 
        {
            resultado = numero1 * numero2;
            break;
        }
        case 'D': 
        {
            resultado = numero1 / numero2;
            break;
        }
    }

    std::cout << "O resultado da operacao e: " << resultado << std::endl;
}