====== Betingede sætninger i C# ======
{{teknologi::images:cond_statement.jpg?450 |}}
----
* "Hvis du er over 18 år gammel må du komme ind" .. er en betinget sætning.
* Hvis noget er sandt, sker noget hvis ikke ..sker noget andet.
Vi bruger betingede sætninger (conditional statements) i programmering for at styre vores program 'flow' ell. programmets 'opførsel'.
----
Betingede sætninger giver programmer mulighed for at træffe beslutninger. Med if-else kan programmet udføre forskellige handlinger afhængigt af betingelser, mens switch-case ofte bruges, når der er mange mulige valg.\\ Dette gør det muligt at reagere forskelligt på forskellige input, f.eks. brugerhandlinger eller data.
----
* Litt.: HeadFirst C# s. 63
----
Betingede sætninger bruges til at træffe beslutninger i et program.
De gør det muligt at køre forskellig kode afhængigt af en betingelse (et udtryk der enten er sandt eller falsk).
I C# bruger man især:
* if
* if-else
* if-else if-else
===== IF-sætning =====
En if-sætning bruges når du kun vil udføre noget kode, hvis en betingelse er sand.
==== Syntaks ====
if (betingelse)
{
// kode der kun kører hvis betingelsen er sand
}
==== Eksempel ====
int alder = 18;
if (alder >= 18)
{
Console.WriteLine("Du er gammel nok til at køre bil.");
}
==== Forklaring ====
Hvis variablen `alder` er større end eller lig med 18, bliver teksten udskrevet.
Hvis betingelsen er falsk, sker der ingenting.
-----
===== IF-ELSE sætning =====
En if-else bruges når du vil vælge mellem to muligheder:
én hvis betingelsen er sand, og én hvis den er falsk.
==== Syntaks ====
if (betingelse)
{
// kører hvis sand
}
else
{
// kører hvis falsk
}
==== Eksempel ====
int alder = 16;
if (alder >= 18)
{
Console.WriteLine("Du er voksen.");
}
else
{
Console.WriteLine("Du er ikke gammel nok endnu.");
}
==== Forklaring ====
Programmet tjekker alderen:
* Hvis alder >= 18 → voksen
* Ellers → ikke gammel nok
-----
===== IF - ELSE IF - ELSE =====
Bruges når der er flere mulige valg.
==== Eksempel ====
int point = 75;
if (point >= 90)
{
Console.WriteLine("Karakter: 12");
}
else if (point >= 80)
{
Console.WriteLine("Karakter: 10");
}
else if (point >= 70)
{
Console.WriteLine("Karakter: 7");
}
else
{
Console.WriteLine("Bestået ikke");
}
==== Forklaring ====
Programmet tester betingelserne i rækkefølge:
- Først 90 eller derover
- Derefter 80 eller derover
- Derefter 70 eller derover
- Ellers falder den tilbage til else
===== Switch-case =====
=== Switch-case Fall Through ===
I et ''switch-case'' statement tjekker programmet, hvilken ''case'' der matcher værdien.
**Fall through** betyder, at hvis der ikke er et ''break'' i en case, fortsætter programmet med at køre de efterfølgende cases, selvom de ikke matcher.
----
==== Eksempel uden break (demonstrerer fall through) ====
char key = 'a';
switch(key) {
case 'a':
println("Venstre");
case 'd':
println("Højre");
case ' ':
println("Hop");
}
**Output:**
Venstre
Højre
Hop
Forklaring:
- ''key'' er ''a'', så koden starter i ''case 'a'''.
- Der er ingen ''break'', så koden fortsætter til case 'd' og case ' '.
----
==== Eksempel med break (stopper fall through) ====
char key = 'a';
switch(key) {
case 'a':
println("Venstre");
break;
case 'd':
println("Højre");
break;
case ' ':
println("Hop");
break;
}
**Output:**
Venstre
Forklaring:
- Efter ''println("Venstre")'' rammer koden ''break'', og switch stopper.
----
==== Fall through med vilje ====
char key = 'a';
switch(key) {
case 'a':
case 'A':
println("Venstre");
break;
case 'd':
case 'D':
println("Højre");
break;
}
Forklaring:
- Både ''a'' og ''A'' udfører samme kode uden at gentage.
- Dette er en smart måde at bruge fall through på med vilje.
----
==== Tenary operator ====
* ''bool status = betingelse ? sandt : falsk;''
----
==== Opgaver ====
- [[prog:ex_controlFlow|Kontrol flow #1(Betingede sætninger)]] - if statements
- [[prog:ex_controlflow2|Kontrol flow #2(Betingede sætninger)]] - switch-case