Læringsmål

  • Kan forklare, hvad et expression er i C#
  • Kan anvende aritmetiske, sammenlignings- og logiske operatorer
  • Kan kombinere flere operatorer i simple beregninger
  • Kan evaluere, hvorfor et boolsk udtryk er true eller false

Operatorer og udtryk

Et udtryk (expression) er en kombination af værdier, variabler, operatorer og funktioner, der evalueres til én enkelt værdi. Operatorer er symboler, der udfører operationer på værdier og variabler.

C# skelner mellem statements (handlinger) og expressions (værdier):

  • Console.WriteLine("Hej"); er et statement — det gør noget
  • 2 + 3 er et expression — det er noget (værdien 5)

Typer af udtryk

Bogstavelige udtryk

Direkte værdier i koden — tal, tekst eller sandt/falsk:

5         // Et tal
"Hej"     // En tekststreng
true      // En boolsk værdi

Variable udtryk

Variabler, der gemmer værdier og kan bruges i beregninger:

int x = 10;
string name = "Alice";
bool isActive = true;

Aritmetiske udtryk

Kombinerer tal med matematiske operatorer:

int sum = 5 + 3;        // Resultatet er 8
int product = 4 * 2;    // Resultatet er 8
bool isAdult = age >= 18;   // true eller false

Du kan gemme resultatet af et udtryk i en variabel:

int result = 10 + 5;
bool hasPassed = score >= 60;
string message = $"Score: {score}";

Aritmetiske operatorer

Aritmetiske operatorer udfører grundlæggende matematik på tal.

+ (plus) — addition

int sum = 5 + 3;   // 8

- (minus) — subtraktion

int difference = 5 - 3;   // 2

* (gangetegn) — multiplikation

int product = 5 * 3;   // 15

/ (divisionstegn) — division

int quotient = 10 / 2;              // 5
double decimalResult = 10 / 4.0;    // 2.5

Vigtigt om division: 10 / 4 giver 2 (heltalsdivision), fordi begge operandi er int. Brug 10 / 4.0 eller (double)10 / 4 for at få 2.5.

% (modulus) — rest ved heltalsdivision

int remainder = 10 % 3;   // 1

10 % 3 er 1, fordi 10 = 3×3 + 1. Nyttigt til at tjekke om et tal er lige: n % 2 == 0.

Videoer

Se det i praksis

Numbers, Integers, and Math [Pt 7] | C# for Beginners

Numbers, Precision, Casting, Doubles, and More [Pt 8] | C# for Beginners

Sammenligningsoperatorer

Sammenligningsoperatorer returnerer altid bool (true/false).

== (lig med)

bool isEqual = (5 == 5);   // true

!= (ikke lig med)

bool areDifferent = (5 != 3);   // true

> (større end)

bool isGreater = (5 > 3);   // true

< (mindre end)

bool isLess = (5 < 3);   // false

>= (større end eller lig med)

bool isGreaterOrEqual = (5 >= 5);   // true

<= (mindre end eller lig med)

bool isLessOrEqual = (5 <= 5);   // true

Typisk brug:

bool isAdult = age >= 18;
bool hasPassed = score >= 60;
bool isPasswordCorrect = input == "hemmelig";

Brug == til sammenligning og = til tildeling. if (x = 5) er en fejl — det skal være if (x == 5).

Logiske operatorer

Logiske operatorer kombinerer flere betingelser.

&& (logisk OG) — sand, hvis begge betingelser er sande

bool result = (5 > 3) && (2 < 4);   // true
bool both = isActive && score >= 60;

|| (logisk ELLER) — sand, hvis mindst én betingelse er sand

bool result = (5 > 3) || (2 > 4);   // true
bool either = username == "admin" || isAdmin;

! (logisk IKKE) — vender en betingelse

bool result = !(5 > 3);   // false
bool isNotEmpty = !string.IsNullOrEmpty(name);

Short-circuit: Med && evalueres højre side kun, hvis venstre er true. Med || evalueres højre side kun, hvis venstre er false. Det beskytter mod fejl — fx number != 0 && 10/number > 2 crasher ikke ved number = 0.

Evaluer et boolsk udtryk trin for trin: Hvad er hver del? Bruger && og || short-circuit — højre side evalueres kun, når det er nødvendigt.

Kombinerede udtryk og operator-prioritet

Ved at kombinere udtryk og operatorer kan du bygge komplekse logikker og udføre beregninger i dine C#-programmer:

Prioritet (hvem der regnes først):

  1. Parenteser ()
  2. Multiplikation, division, modulo * / %
  3. Addition, subtraktion + -
  4. Sammenligning < > <= >= == !=
  5. Logisk NOT !
  6. Logisk AND &&
  7. Logisk OR ||

Brug parenteser, når du er i tvivl — det gør koden læsbar og undgår fejl.

Test din viden

Spørgsmål 1

Hvad er forskellen på et statement og et expression i C#?

Spørgsmål 2

Hvad er resultatet af 10 / 4 når begge operandi er int?

Spørgsmål 3

Hvad returnerer 10 % 3?

Spørgsmål 4

Hvilken operator bruger du til at sammenligne to værdier for lighed?

Spørgsmål 5

Hvornår evalueres højre side ikke i udtrykket A && B?

Spørgsmål 6

Hvad er resultatet af !(5 > 3)?

Spørgsmål 7

Hvilken operator har lavest prioritet i udtrykket a && b || c?