Operators & Expressions
Præsenter som slidesLæ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 noget2 + 3er 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):
- Parenteser
() - Multiplikation, division, modulo
* / % - Addition, subtraktion
+ - - Sammenligning
< > <= >= == != - Logisk NOT
! - Logisk AND
&& - 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#?
2 + 3 er et expression — det er værdien 5. Console.WriteLine("Hej"); er et statement — det gør noget uden at producere en værdi, du kan gemme.
Spørgsmål 2
Hvad er resultatet af 10 / 4 når begge operandi er int?
Når begge operandi er heltal, laver / heltalsdivision og dropper decimaldelen. For at få 2.5 skal mindst én operand være decimaltal — fx 10 / 4.0.
Spørgsmål 3
Hvad returnerer 10 % 3?
% (modulus) giver resten ved heltalsdivision. 10 = 3×3 + 1, så resultatet er 1. Det er nyttigt til at tjekke om et tal er lige: n % 2 == 0.
Spørgsmål 4
Hvilken operator bruger du til at sammenligne to værdier for lighed?
== sammenligner to værdier og returnerer true eller false. = er tildeling — den gemmer en værdi i en variabel. if (x = 5) er en fejl; det skal være if (x == 5).
Spørgsmål 5
Hvornår evalueres højre side ikke i udtrykket A && B?
Med && evalueres B kun, hvis A er true — det kaldes short-circuit. Det beskytter mod fejl, fx number != 0 && 10/number > 2 crasher ikke, når number er 0.
Spørgsmål 6
Hvad er resultatet af !(5 > 3)?
! (logisk IKKE) vender en boolsk værdi. 5 > 3 er true, og !true bliver false.
Spørgsmål 7
Hvilken operator har lavest prioritet i udtrykket a && b || c?
Operator-prioritet (fra højest til lavest): parenteser → * / % → + - → sammenligning → ! → && → ||. Derfor evalueres || sidst — brug parenteser, når du er i tvivl.