Operadores de incremento e decremento




Você já deve ter percebido que mencionamos expressões do tipo incremento e decremento. Num sentido mais técnico, trata-se de dois operadores de extrema utilidade em C++.


O operador de incremento é formado por dois sinais de adição ++ e adiciona 1 ao valor da variável à qual é aplicado. Num exemplo anterior (Operações matemáticas com unsigned), a expressão:


uiAcresce = uiAcresce + 1;


produziria o mesmo resultado se fosse substituída por:


uiAcresce++;


Já o operador de decremento é formado por dois sinais de subração -- e subtrai 1 do valor da variável à qual é aplicado:


uiDecresce--;


é equivalente a:


uiDecresce = uiDecresce - 1;


É relevante a posição dos operadores de incremento (++) ou decremento (--) em relação à variável:


++uiAcresce; // operador antecedendo do nome da variável - prefixo

uiAcresce++; // operador após o nome da variável - sufixo

--uiDecresce; // prefixo

uiDecresce--; // sufixo



Na posição de prefixo, primeiro o operador é aplicado e depois a variável tem seu valor acessado. Na posição de sufixo, o valor da variável é acessado antes de o operador ser aplicado.


O exemplo abaixo usa um Button e um Memo no Form. Quando o usuário dá cliques no botão, as variáveis são, conforme o caso, incrementadas ou decrementadas, com operadores pós e pré-fixados. A diferença dos resultados que tais operadores operam nas variáveis nessas diversas situações é demonstrada no Memo:


//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
int Acresce = 100, ACRESCE = 100,
Decresce = 100, DECRESCE = 100;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{

Memo1->Lines->Add("incrementa Acresce com sufixo " + String(Acresce++) +
"        " "incrementa ACRESCE com prefixo " + String(++ACRESCE));

Memo1->Lines->Add("decrementa Decresce com sufixo " + String(Decresce--) +
"        " "decrementa DECRESCE com prefixo " + String(--DECRESCE));

}
//---------------------------------------------------------------------------

anterior

índice

próxima


HOME || MAPA DO SITE || CURSOS || TUTORIAIS || LINKS || FORUM || CONTATO