====== 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