Aprenda C++

  • Página Inicial
  • Contato!
  • Tudo sobre C++ Parte 1!
  • Tudo sobre C++ Parte 2!
  • Tudo sobre C++ Parte 3!
  • Tudo sobre C++ Parte 4!
  • Tudo sobre C++ Parte 5!
  • Tudo sobre C++ Parte 6!
  • Tudo sobre C++ Parte 7!
  • Tudo sobre C++ Parte 8!
  • Tudo sobre C++ Parte 9!
  • Tudo sobre C++ Parte 10!
  • Tudo sobre C++ Parte 11!
  • Tudo sobre C++ Parte 12!
  • Tudo sobre C++ Parte 13!
  • Tudo sobre C++ Parte 14!
  • Tudo sobre C++ Parte 15!
  • Tudo sobre C++ Parte 16!
  • Tudo sobre C++ Parte 2

    Incremento e Decremento de Variáveis

    Incremento nada mais é do que somar valores em uma variável numérica, e decremento é subtrair valores do mesmo. Por exemplo:

    
    int n1, n2;
        
    n1 = 0;
    n2 = 10;
    
    cout << n1 << "\n";
        
    n1 = n1 + 5;
        
    cout << n1 << "\n";
    
    

    Também podemos fazer a atribuição diretamente junto com o operador aritmético (funciona com todos), dessa forma:

    
    n1 += 5;
    
    

    Apesar de podermos somar ou subtrair valores de um a um como uma operação normal, geralmente usamos operadores de incremento e decremento nas variáveis (representadas por ++ e --, respectivamente).

    Veja um exemplo abaixo:

    
    n1++;
    
    n2--;
    
    

    Observe também que o ++ e o -- pode vir antes da variável, isso se chama pré-incremento/decremento (fazendo a conta antes da variável), quando vem depois da variável é pós-incremento/decremento (fazendo a conta depois da variável), a posição faz toda a diferença.

    Veja um caso que usaríamos o pré-incremento, já que nesse caso teria que ser incrementado antes de ser exibido:

    
    cout << ++n1 << "\n";
    cout << n1 << "\n"; // Aqui ele já está incrementado.
    
    

    PS: O próprio nome da linguagem C++ é baseado no incremento, como se fosse o C com incremento (ou seja, com algo à mais).

    Invertendo Valores de Variáveis

    Em alguns casos, principalmente em jogos, é necessário inverter a direção ou valores de variáveis. Para tanto, existem os valores de inversão de variáveis. No caso, seria deixar o valor negativo se for positivo e vice-versa.

    Veja um exemplo simples disso:

    
    int num = 10;
        
    cout << num << "\n\n";
        
    num = num * -1;
        
    cout << num << "\n\n";
    
    

    Você também pode colocar o sinal negativo diretamente ao lado da variável à ser exibida, assim:

    
    int num = 10;
        
    cout << -num << "\n\n";
    
    

    PS: Esse negativo não muda o valor da variável, só na exibição nesse cout ele faz a inversão.

    Para gravar o novo valor da variável, use a multiplicação por -1 antes de exibir.

    Veja um exemplo:

    
    int num = 10;
    
    cout << num << "\n\n"; // Valor original.
    
    num = num * -1;
    
    cout << -num << "\n\n"; // Retornará positivo, - com - retorna + e a variável foi alterada antes.
    
    cout << num << "\n\n"; // Retornará negativo, já que a variável foi alterada.
    
    

    PS: Só pra lembrar, + com + retornará positivo, e - com - retorna positivo. Apenas quando usarmos + e - que retornará negativo. Regra simples de matemática, iguais retornam positivo e diferentes retornam negativo.

    Mas a inversão de valores mais simplificada podemos fazer com a atribuição e o operador juntos, mas com o operador vindo depois da atribuição (por exemplo, num =- num, que inverterá os valores). Cuidado pra não confundir com o sinal de subtração com atribuição.

    Operadores AND, OR e NOT

    Os operadores lógicos são usados para que seja possível tomar decisões usando valores booleanos true e false. Geralmente são aplicadas em estruturas de controles adicionais e estruturas de repetição. Os operadores lógicos são os seguintes:

    Operador Operação Significado
    && AND E
    || OR Ou
    ! NOT Não

    O operador AND retorna true se ambos os operandos envolvidos forem verdadeiros, em outro caso retorna falso, como podem ver:

    Operando 1 Operando 2 Resultado
    false false false
    false true false
    true false false
    true true true

    Veja um exemplo de uso do AND:

    
    int num;
    
    cout << "Digite um número entre 4 e 7:\n";
    
    cin >> num;
    
    if(num >= 4 && num <= 7) {
        cout << "\nValor aceito!\n";
    }
    else {
        cout << "\nValor não aceito!\n";
    }
    
    

    O operador OR retorna true se um dos valores pelo menos são verdadeiros, só retorna false se ambos forem falsos, como podem ver:

    Operando 1 Operando 2 Resultado
    false false false
    false true true
    true false true
    true true true

    Veja um exemplo de uso de OR:

    
    int num;
    
    cout << "Digite um número entre 3 e 8:\n";
    
    cin >> num;
    
    if(num < 3 || num > 8) {
        cout << "\nFora do intervalo!\n";
    }
    else {
        cout << "\nDentro do intervalo!\n";
    }
    
    

    PS: Tanto o AND como o OR pode ter comparações de mais de dois valores. Também podemos juntar ambos, os separando por parênteses dessa forma:

    
    if((num >= 3 && num <= 6) || (num > 9 && num < 15) || (num > 15 && num < 20)) {
        cout << "\nValor aceito!\n";
    }
    
    

    O operador NOT simplesmente inverte o valor booleano do operando, por isso chamado de "Operador da Negação", age apenas sobre um valor lógico, como podem ver:

    Operando Resultado
    false true
    true false

    Veja um exemplo de NOT abaixo:

    
    int num;
    
    num = 1;
    
    if(!num) {
        cout << "\nVou ao clube!\n";
    }
    else {
        cout << "\nVou ao cinema!\n";
    }
    
    

    Veja outro exemplo:

    
    int numero, num1, num2;
    
    num1 = 20;
    num2 = 30;
    
    numero = !(num1 != num2);
    
    cout << numero << "\n";
    
    numero = !(num1 == num2);
    
    cout << numero << "\n";
    
    

    Operador Ternário

    Assim como em diversas linguagens, temos no C++ o oprador ternário. O que está antes da interrogação for verdadeiro, receberá o primeiro valor do lado direito, senão receberá o segundo do lado direito.

    Veja um exemplo abaixo, no qual atribuímos variáveis à ele:

    
    int n1, n2, nota;
    string res;
    
    cout << "Digite a primeira nota: ";
    cin >> n1;
    
    cout << "Digite a segunda nota: ";
    cin >> n2;
    
    nota = (n1 + n2) / 2;
    
    (nota >= 6) ? res = "Aprovado" : res = "Reprovado";
    
    cout << "\nSituação do aluno: " << res << "\n";
    
    

    Ou podemos colocar o retorno diretamente como condições, sem atribuir diretamente à variáveis, dessa forma:

    
    res = (nota >= 6) ? "Aprovado" : "Reprovado"; 
    
    

    PS: O retorno deverá ser do mesmo tipo das variáveis.

    Veja outro exemplo:

    
    int n1;
    
    cout << "Digite um valor: ";
    cin >> n1;
    
    (n1 >= 10) ? n1++ : n1--; 
    
    cout << "\nNovo Valor de N1: " << n1 << "\n";