Pós-incremento/Decremento
Parte da seção Fundamentos do Journey de C++ da Coddy — lição 19 de 74.
Na lição anterior, cobrimos os operadores de incremento (++) e decremento (--). Estes operadores possuem duas formas: prefixa e posfixa.
Saber qual forma usar é importante em programas reais — por exemplo, ao acompanhar a pontuação de um jogo, contar iterações de um loop ou avançar por uma lista de itens.
A forma prefixada é escrita antes da variável (ex: ++x ou --x), e a forma posfixada é escrita depois da variável (ex: x++ ou x--).
A diferença entre as duas formas é sutil, mas importante:
- Forma prefixada: Incrementa/decrementa a variável e então retorna o novo valor.
- Forma posfixada: Retorna o valor atual da variável e então a incrementa/decrementa.
Aqui está um exemplo para ilustrar a diferença:
int x = 5;
int y = x++;
// y = 5, x = 6 (posfixo)
int a = 5;
int b = ++a;
// b = 6, a = 6 (prefixo)No primeiro caso, y recebe o valor original de x (5), e então x é incrementado para 6. No segundo caso, a é incrementado primeiro, e então seu novo valor (6) é atribuído a b.
A mesma lógica se aplica ao operador de decremento:
int x = 5;
int y = x--;
// y = 5, x = 4 (pós-fixado)
int a = 5;
int b = --a;
// b = 4, a = 4 (prefixado)Desafio
InicianteVocê recebeu um código com as inicializações de x, y e z. (Não apague essas linhas!)
Sua tarefa é usar os operadores de incremento/decremento para realizar as seguintes operações, nesta ordem:
- Use o operador de incremento pós-fixado para atribuir o valor atual de
xaae, em seguida, incrementarx. - Use o operador de decremento pré-fixado para decrementar
ye atribuir seu novo valor ab. - Use o operador de decremento pós-fixado para atribuir o valor atual de
zace, em seguida, decrementarz.
Após realizar essas operações, imprima os valores de a, b, c, x, y e z no console no seguinte formato:
a: [value of a]
b: [value of b]
c: [value of c]
x: [value of x]
y: [value of y]
z: [value of z]Folha de consulta
Os operadores de incremento (++) e decremento (--) têm duas formas:
- Forma prefixada (
++x,--x): Incrementa/decrementa a variável primeiro, depois retorna o novo valor - Forma pós-fixada (
x++,x--): Retorna o valor atual primeiro, depois incrementa/decrementa a variável
Exemplos:
int x = 5;
int y = x++; // y = 5, x = 6 (pós-fixado)
int a = 5;
int b = ++a; // b = 6, a = 6 (prefixado)
int x = 5;
int y = x--; // y = 5, x = 4 (pós-fixado)
int a = 5;
int b = --a; // b = 4, a = 4 (prefixado)Experimente você mesmo
#include <iostream>
int main() {
int x = 10;
int y = 20;
int z = 30;
int a, b, c;
// Digite seu código abaixo
// Não altere as linhas abaixo
std::cout << "a: " << a << std::endl;
std::cout << "b: " << b << std::endl;
std::cout << "c: " << c << std::endl;
std::cout << "x: " << x << std::endl;
std::cout << "y: " << y << std::endl;
std::cout << "z: " << z << std::endl;
return 0;
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Operadores Parte 1
Operadores AritméticosOperador de MóduloIncremento/DecrementoPós-incremento/DecrementoAtalhos AritméticosOperadores de ComparaçãoComparação de Strings7Fundamentos de Entrada/Saída
Comando coutComando cinEntrada de StringRevisão - Até 120Revisão - Verdadeiro ou Falso3Variáveis Parte 2
Declaração de TipoConvenções de NomenclaturaRecapitulação - Inicializar VariáveisType Casting Parte 1Type Casting Parte 26Tomada de Decisão
Estrutura IfIf - ElseEstrutura SwitchOperador CondicionalRecapitulação - If ElseIf - Else Aninhado