Övning – Inkrements- och minskningsvärden

Slutförd

De sista grundläggande operationer vi går igenom i den här modulen är att öka och minska värden med hjälp av särskilda operatorer som är kombinationer av symboler.

Öka och minska

Ofta behöver du öka och/eller minska värden, särskilt när du skriver looplogik eller kod som interagerar med en datastruktur.

Operatorn += adderar och tilldelar värdet till höger om operatorn till värdet till vänster om operatorn. Därför är rad två och tre i följande kodfragment samma:

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

Operatorn ++ ökar värdet för variabeln med 1. Därför är rad två och tre i följande kodfragment samma:

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

Samma tekniker kan användas för subtraktion, multiplikation med mera. Vi går igenom några av dem i följande övning.

Kommentar

Operatorer som +=, -=, *=, ++ och -- kallas för sammansatta tilldelningar eftersom de både utför någon typ av operation och tilldelar resultatet till variabeln. Operatorn += kallas särskilt för operatorn för additionstilldelning.

Skriva kod för att öka och minska ett värde

  1. Markera all kod i .NET-redigeraren och tryck på Ta bort eller Backspace för att ta bort den.

  2. Ange följande kod i .NET-redigeraren:

    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. Kör koden. Du bör se följande utdata:

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

Kommentar

I det "andra steget" använde value += 1;du . Du kan dock ha använt valfritt literalvärde int (eller en variabel) för att öka den mängden. Samma sak gäller den ”andra minskningen”: value -= 1;.

Placera operatorerna för ökning och minskning

Både inkrements- och minskningsoperatorerna har en intressant kvalitet – beroende på deras position utför de sin åtgärd före eller efter att de hämtat sitt värde. Om du använder operatorn före värdet, som i ++value, görs ökningen innan värdet hämtas. På samma sätt så sker ökningen i value++ efter att värdet har hämtats.

Använd inkrementsoperatorn före och efter värdet

  1. Ta bort koden från föregående steg och ange följande kod i .NET-redigeraren:

    int value = 1;
    value++;
    Console.WriteLine("First: " + value);
    Console.WriteLine($"Second: {value++}");
    Console.WriteLine("Third: " + value);
    Console.WriteLine("Fourth: " + (++value));
    
  2. Kör koden. Du bör se följande utdata:

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

Lägg märke till den här kodraden:

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

Det förekommer två steg i den här raden:

  1. Hämta det aktuella värdet för variabeln value och använd det i stränginterpolationen.
  2. Öka värdet.

I nästa kodrad bekräftas att värdet faktiskt har ökats.

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

I den sista kodraden har vi motsatt situation:

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

Här är operationsordningen omvänd eftersom operatorn ++ står före operanden value.

  1. Öka värdet.
  2. Hämta det nya inkrementerade värdet för variabeln value och använd det i strängåtgärden.

Även om det inte är absolut nödvändigt har du lagt till parenteser runt uttrycket (++value) för att förbättra läsbarheten. Om för många +-operatorer står intill varandra så kan andra utvecklare eventuellt missförstå syftet. Stilistiska överväganden som det här är subjektiva. Men eftersom du skriver koden en gång men läser den många gånger bör du prioritera läsbarhet.

Sammanfattning

Här är vad du har lärt dig hittills om matematiska operationer i C#:

  • Använd sammansatta tilldelningsoperatorer som +=, -=, *=, ++ och -- till att utföra en matematisk operation som en ökning eller minskning, och sedan tilldela resultatet till den ursprungliga variabeln.
  • Öknings- och minskningsoperatorerna fungerar olika beroende på om operatorn står före eller efter operanden.