Exercício - Valores de incremento e decréscimo

Concluído

As últimas operações básicas que aprenderá neste módulo estão relacionadas com a forma de incrementar e decrementar valores com recurso a operadores especiais que são combinações de símbolos.

Incrementar e decrementar

Frequentemente, você precisará incrementar e/ou diminuir valores, especialmente quando estiver escrevendo lógica de looping ou código que interage com uma estrutura de dados.

O operador += faz a soma e atribui o valor que se encontra à direita do operador ao valor que se encontra à esquerda do operador. Assim, as linhas dois e três no seguinte fragmento de código são iguais:

int value = 0;     // value is now 0.
value = value + 5; // value is now 5.
value += 5;        // value is now 10.

O operador ++ incrementa o valor da variável em 1. Assim, as linhas dois e três no seguinte fragmento de código são iguais:

int value = 0;     // value is now 0.
value = value + 1; // value is now 1.
value++;           // value is now 2.

Essas mesmas técnicas podem ser usadas para subtração, multiplicação e muito mais. Os seguintes passos de exercício irão destacar algumas.

Nota

Os operadores como +=, -=, *=, ++ e -- são conhecidos como operadores de atribuição compostos porque compõem uma qualquer operação para além de atribuírem o resultado à variável. O operador += é especificamente designado de operador de atribuição de adição.

Escrever código para incrementar e diminuir um valor

  1. Selecione todo o código no Editor .NET e pressione Delete ou Backspace para excluí-lo.

  2. Insira o seguinte código no Editor .NET:

    int value = 1;
    
    value = value + 1;
    Console.WriteLine("First increment: " + value);
    
    value += 1;
    Console.WriteLine("Second increment: " + value);
    
    value++;
    Console.WriteLine("Third increment: " + value);
    
    value = value - 1;
    Console.WriteLine("First decrement: " + value);
    
    value -= 1;
    Console.WriteLine("Second decrement: " + value);
    
    value--;
    Console.WriteLine("Third decrement: " + value);
    
  3. Execute o código. Deverá ver o seguinte resultado:

    First increment: 2
    Second increment: 3
    Third increment: 4
    First decrement: 3
    Second decrement: 2
    Third decrement: 1
    

Nota

No "segundo incremento", você usou value += 1;. No entanto, você poderia ter usado qualquer valor literal int (ou uma variável) para incrementar esse valor. O mesmo se aplica ao "segundo decremento": value -= 1;.

Posicionar os operadores de incremento e decréscimo

Tanto os operadores de incremento como de decréscimo têm uma qualidade interessante — dependendo da sua posição, realizam a sua operação antes ou depois de recuperarem o seu valor. Por outras palavras, se utilizar o operador antes do valor, como em ++value, o incremento ocorrerá antes da obtenção do valor. Da mesma forma, value++ incrementará o valor após a recuperação do mesmo.

Use o operador de incremento antes e depois do valor

  1. Exclua o código das etapas anteriores e insira o seguinte código no Editor .NET:

    int value = 1;
    value++;
    Console.WriteLine("First: " + value);
    Console.WriteLine($"Second: {value++}");
    Console.WriteLine("Third: " + value);
    Console.WriteLine("Fourth: " + (++value));
    
  2. Execute o código. Deverá ver o seguinte resultado:

    First: 2
    Second: 2
    Third: 3
    Fourth: 4
    

Observe esta linha de código:

Console.WriteLine($"Second: {value++}");

Há dois passos associados a esta linha:

  1. Obter o valor atual da variável value e utilizá-lo na operação de interpolação de cadeia.
  2. Incrementar o valor.

A seguinte linha de código confirma que o valor foi realmente incrementado.

Console.WriteLine("Third: " + value);

Considere agora a última linha de código:

Console.WriteLine("Fourth: " + (++value));

Aqui, a ordem das operações está trocada porque o operador ++ está colocado antes do operando value.

  1. Incrementar o valor.
  2. Recupere o novo valor incrementado da variável value e use-o na operação de cadeia de caracteres.

Embora não seja estritamente necessário, você adicionou parênteses em torno da expressão (++value) para melhorar a legibilidade. Ver tantos operadores + uns ao lado dos outros poderia ser mal interpretado por outros programadores. As decisões estilísticas como esta são subjetivas. No entanto, como você escreverá o código uma vez, mas o lerá muitas vezes, você deve priorizar a legibilidade.

Recapitulação

Aqui está o que você aprendeu até agora sobre operações matemáticas em C#:

  • Utilize operadores de atribuição compostos, tais como +=, -=, *=, ++ e --, para realizar uma operação matemática como incrementos ou decrementos e, em seguida, atribua o resultado à variável original.
  • Os operadores de incremento e decremento atuam de forma diferente dependendo do facto de o operador estar antes ou depois do operando.