Drop links or images here to add them to the editor.

Wanneer je verschillende bewerkingen in één uitdrukking combineert, doet C# ze niet zomaar van links naar rechts. Net zoals in de wiskunde gelden er voorrangsregels: vermenigvuldigen en delen gaan vóór optellen en aftrekken.

De voorrangsregels

C# werkt de bewerkingen af in deze volgorde:

PrioriteitBewerkingSymbool
1 (hoogste)haakjes( )
2machtsverheffen (ook worteltrekken)^
3tekenwisseling (een getal negatief maken)-
4vermenigvuldigen en delen (dezelfde prioriteit)* /
5 (laagste)optellen en aftrekken (dezelfde prioriteit)+ -

Hebben twee bewerkingen dezelfde prioriteit (bijvoorbeeld een * en een /), dan werkt C# ze af van links naar rechts. Daarom geeft 3 * 4 / 2 * 3 als resultaat 18:

3 * 4 / 2 * 3  =  12 / 2 * 3  =  6 * 3  =  18

Met haakjes kan je die volgorde sturen. 3 * 4 / (2 * 3) rekent eerst de haakjes uit en geeft 2:

3 * 4 / (2 * 3)  =  3 * 4 / 6  =  12 / 6  =  2

Vergeet de gehele deling uit de vorige activiteit niet: zodra alle getallen gehele getallen zijn, valt bij een / het deel na de komma weg.

De rest-operator %

Naast de gewone bewerkingen heeft C# ook de operator % (de modulo). Die geeft de rest na een gehele deling:

UitdrukkingWaardeVerklaring
30 % 7230 = 4 × 7 + 2
125 % 605125 = 2 × 60 + 5
10 % 8210 = 1 × 8 + 2
1 % 211 = 0 × 2 + 1

De gehele deling / en de rest % vormen samen een sterk koppel: / geeft je “hoeveel keer past het erin”, % geeft “wat blijft er over”. Verderop gebruik je dat om bijvoorbeeld seconden om te zetten naar uren en minuten.

Test jezelf

Probeer onderstaande uitdrukkingen eerst zelf uit te rekenen op papier, en klap daarna pas het antwoord open.

Bepaal de waarde van deze uitdrukkingen

3 * 7 - 5 * 2

= 21 - 10 = 11 — eerst beide vermenigvuldigingen, dan de aftrekking.

6 * 8 + 7 / 3

= 48 + 2 = 507 / 3 is een gehele deling en geeft 2 (de rest valt weg), niet 2,33.

(4 + 7) / (8 - 3)

= 11 / 5 = 2 — eerst de haakjes (11 en 5), dan een gehele deling die het deel na de komma laat vallen.

(3 + 7) / (6 - 4)

= 10 / 2 = 5.

3 + 7 / 6 - 4

= 3 + 1 - 4 = 0 — eerst 7 / 6 (gehele deling, geeft 1), pas daarna optellen en aftrekken van links naar rechts.

3 - Math.Pow(15, 2) / 20 * 3 (tip: Math.Pow(15, 2) = 15²)

Math.Pow(15, 2) is 225. Dan 225 / 20 * 3. Omdat Math.Pow een double teruggeeft, rekent C# hier verder met kommagetallen: 225 / 20 = 11,25, × 3 = 33,75, en ten slotte 3 - 33,75 = -30,75. (In het boek staat -30 als antwoord: dat is de uitkomst als je puur met gehele getallen rekent (225 / 20 = 11, × 3 = 33, 3 - 33 = -30). Het verschil komt doordat Math.Pow een kommagetal oplevert — meer over datatypes en casting in de volgende activiteit.)

Voeg haakjes toe

Voeg bij elke uitdrukking haakjes toe zodat je de gewenste waarde krijgt.

2 * 3 + 5 moet 11 geven

(2 * 3) + 5 — dit is eigenlijk al de gewone volgorde: 6 + 5 = 11.

5 + 2 * 8 - 5 moet 21 geven

(5 + 2) * (8 - 5) = 7 * 3 = 21.

5 + 2 * 8 - 5 moet 51 geven

((5 + 2) * 8) - 5 = (7 * 8) - 5 = 56 - 5 = 51.

2 * 3 + 5 moet 16 geven

2 * (3 + 5) = 2 * 8 = 16.

5 + 2 * 8 - 5 moet 16 geven

5 + (2 * 8) - 5 = 5 + 16 - 5 = 16. Dit is opnieuw de gewone volgorde, de haakjes maken ze enkel zichtbaar.

5 + 2 * 8 - 5 moet 11 geven

5 + 2 * (8 - 5) = 5 + 2 * 3 = 5 + 6 = 11.