Nighthawk.dk

Grundlæggende C#: Betingelser

Skrevet d. 11. May 2022 af Claus Nielsen.

Betingelser, eller if-sætninger, er et grundelement i alle programmer.

Betingelser

Et vigtigt element i programmering er betingelser, som kan få dit program til at udføre en opgave hvis en betingelse er opfyldt, og evt. en anden opgave hvis betingelsen ikke er opfyldt.

Du kan lave betingelser i dit program med if-sætninger, som illustreret i dette eksempel:

int a = 0;
... // Noget kode der kan ændre værdien af 'a'
if(a > 2)
{
	Console.WriteLine("a er større end 2!");
}

I betingelser kan du f.eks. bruge < og > til at tjekke om værdien af en variabel er mindre end eller større end en værdi (eller en anden variabel).

Du kan bruge == til at tjekke om en variabel er lig med en bestemt værdi, eller != til at tjekke om den er forskellig fra en bestemt værdi.

Du kan desuden tjekke flere betingelser i en enkelt if-sætning ved at skrive && eller || mellem de to betingelser (&& betyder "og", mens || betyder "eller"). Så hvis du skriver:

if( (a == 5) && (b > a) )

Betyder det:

HVIS variablen 'a' er lig med 5 OG variablen 'b' er større end variablen 'a'

Paranteserne omkring betingelserne er ikke altid nødvendige, men de kan gøre din kode mere overskuelig hvis du har mange betingelser i samme if-sætning.

Advarsel: Forskel på tildeling og sammenligning!

Pas på at du ikke kommer til at bruge = i stedet for ==.

Tildelings-operatoren = ændrer værdien af variablen på venstre side af = til den værdi der står på højre side. Sammenlignings-operatoren == sammenligner kun venstre-siden med højre-siden, og giver værdien true ("sand") hvis værdierne er ens, og false ("falsk") hvis de er forskellige.

En betingelse er et udsagn, f.eks. a > 5, som enten kan være sandt eller falsk, og kodeblokken mellem { og } bliver kun kørt hvis betingelsen er sand.

Du kan også angive en kodeblok som skal køres hvis din betingelse ikke er sand - dette gør du vha. else:

if(a > 2)
{
	Console.WriteLine("a er større end 2!");
}
else
{
	Console.WriteLine("a er mindre end eller lig med 2!");
}

Faktisk kan du også kombinere if og else og lave alle de else if-betingelser du vil:

if(a > 10)
{
	Console.WriteLine("a er større end 10!");
}
else if(a > 5)
{
	Console.WriteLine("a er større end 5 men mindre end eller lig med 10!");
}
else if(a > 2)
{
	Console.WriteLine("a er større end 2 men mindre end eller lig med 5!");
}
else
{
	Console.WriteLine("a er mindre end eller lig med 2!");
}

Når man sætter flere betingelser sammen med else som i dette eksempel, er det altid kun én af kodeblokkene, der bliver kørt. Hvis f.eks. a = 1, tjekkes i dette eksempel først betingelsen a > 10, som er falsk. Dernæst tjekkes næste betingelse, a > 5, som også er falsk, og så betingelsen a > 2 som også er falsk. Altså vil den sidste kodeblok med kun else blive kørt når a er 1.

Eksemplet herunder viser nogle flere eksempler på betingelser - prøv selv at lege med koden; når du forstår, hvordan det virker, har du allerede godt styr på betingelser!

Console.WriteLine("Indtast et heltal:");
int tal = Convert.ToInt32(Console.ReadLine());

if((tal > 0) && (tal != 5))
{
	Console.WriteLine("Tallet {0} er positivt, men ikke lig med 5!", tal);
}
else if((tal == 0) || (tal == 5))
{
	Console.WriteLine("Tallet er 0 eller 5!");
}
else
{
	Console.WriteLine("Tallet {0} er hverken positivt eller 0, så det må være negativt!", tal);
}
Opgave 8

Lav et program hvor brugeren kan indtaste et tal, og få at vide om det er et lige eller et ulige tal. Tjek også om det er et positivt eller negativt tal, eller om det er 0.

Opgave 9

Udvid programmerne fra opgave 6 så du tjekker om de indtastede værdier er positive. Udskriv en fejlmeddelelse hvis det ikke er tilfældet.

Opgave 10

Lav et program hvor brugeren kan indtaste to tal, og få at vide hvilket der er størst.

Opgave 11

Lav et program der giver et tilfældigt regnestykke, f.eks. "Hvad er 4 + 9?". Brugeren skal så indtaste et svar, og programmet skal fortælle om det er korrekt. Udskriv hvad det korrekte svar er, hvis det indtastede tal var forkert.

Tip: Du kan få to tilfældige heltal fra 1 til 20 på denne måde:

Random rnd = new Random();
int a = rnd.Next(1, 20);
int b = rnd.Next(1, 20);
Opgave 12

Lav en menu til programmet i opgave 11, dvs. lad først brugeren indtaste et tal for at vælge imellem et plusstykke, minusstykke og et gangestykke. Sørg for først at udskrive valgmulighederne.

Relaterede ressourcer
C# Grundbog

Niels Hilmar Madsen og Michell Cronberg,
Libris, 2003

×