How many comparison operators are there in C#?

Guide til Sammenligningsoperatorer i C#

03/10/2004

Rating: 4.55 (8169 votes)

I programmeringsverdenen, især inden for sprog som C#, der driver kraftfulde spilmotorer som Unity, er operatorer de grundlæggende værktøjer, vi bruger til at manipulere data og skabe logik. De er de specielle symboler, der udfører handlinger på operander (værdier eller variabler). At have en solid forståelse af disse operatorer er afgørende for enhver, der ønsker at skrive effektiv og fejlfri kode. Mens der findes mange typer operatorer, vil denne artikel fokusere specifikt på sammenligningsoperatorer, som er hjørnestenen i at træffe beslutninger i kode. Vi vil dog også dække andre vigtige operatortyper for at give et komplet overblik, så du kan føle dig sikker, næste gang du åbner et C#-script.

What are comparison operators?
2. Comparison operators The < (less than), > (greater than), <= (less than or equal), and >= (greater than or equal) comparison, also known as relational, operators compare their operands. Those operators are supported by all integral and floating-point numeric types.
Indholdsfortegnelse

En Oversigt over Operatorer i C#

Før vi dykker ned i sammenligninger, er det nyttigt at forstå det bredere landskab. I C# kan operatorer groft inddeles i seks hovedkategorier, som hver især tjener et unikt formål. At kende dem alle vil øjeblikkeligt gøre dig til en bedre programmør.

  • Aritmetiske operatorer: Udfører matematiske beregninger som addition, subtraktion, multiplikation og division.
  • Sammenligningsoperatorer: Sammenligner to værdier og returnerer et sandt/falsk resultat. Disse er kernen i denne artikel.
  • Booleske logiske operatorer: Kombinerer eller modificerer booleske udtryk (sandt/falsk).
  • Bitwise- og skifteoperatorer: Arbejder på det binære niveau af data, manipulerer individuelle bits.
  • Ligestillingsoperatorer: En specifik undergruppe af sammenligningsoperatorer, der tjekker for lighed eller ulighed.
  • Diverse operatorer: En samling af andre nyttige operatorer som den ternære operator (?:) og strenginterpolationsoperatoren ($).

Dybdegående Gennemgang af Sammenligningsoperatorer

Sammenligningsoperatorer, også kendt som relationelle operatorer, er fundamentale for at skabe betingelser i din kode. De bruges næsten altid i kontrolstrukturer som if-udsagn, while-løkker og andre steder, hvor programmet skal træffe en beslutning baseret på data. Resultatet af en sammenligning er altid en boolesk værdi: enten true (sandt) eller false (falsk). Der er seks primære sammenligningsoperatorer i C#.

Mindre end (<)

Operatoren < returnerer true, hvis operanden på venstre side er strengt mindre end operanden på højre side. Ellers returnerer den false.

int spillerNiveau = 10;
int kravNiveau = 15;
bool kanBrugeUdstyr = spillerNiveau < kravNiveau; // Resultat: true (fordi 10 er mindre end 15)
Debug.Log(5 < 5); // Resultat: false

Større end (>)

Operatoren > returnerer true, hvis operanden på venstre side er strengt større end operanden på højre side. Ellers returnerer den false.

double score = 95.5;
double highscore = 95.0;
bool nyHighscore = score > highscore; // Resultat: true (fordi 95.5 er større end 95.0)
Debug.Log(100 > 100); // Resultat: false

Mindre end eller lig med (<=)

Operatoren <= returnerer true, hvis operanden på venstre side er mindre end eller lig med operanden på højre side. Dette er nyttigt, når du vil inkludere grænseværdien.

int antalVarer = 5;
int maksKapacitet = 5;
bool harPlads = antalVarer <= maksKapacitet; // Resultat: true (fordi 5 er lig med 5)
Debug.Log(4 <= 5); // Resultat: true

Større end eller lig med (>=)

Operatoren >= returnerer true, hvis operanden på venstre side er større end eller lig med operanden på højre side. Igen, dette inkluderer selve grænseværdien.

int spillerAlder = 18;
int aldersgraense = 18;
bool erGammelNok = spillerAlder >= aldersgraense; // Resultat: true (fordi 18 er lig med 18)
Debug.Log(19 >= 18); // Resultat: true

Ligestillingsoperatorer: En Særlig Type Sammenligning

Selvom de ofte grupperes med sammenligningsoperatorer, er ligestillingsoperatorerne så almindelige, at de fortjener deres egen sektion. De fokuserer udelukkende på, om to værdier er identiske eller ej.

Lig med (==)

Dette er en af de mest anvendte operatorer. Operatoren == returnerer true, hvis de to operander er lig med hinanden. Det er vigtigt ikke at forveksle den med tildelingsoperatoren =, som bruges til at give en variabel en værdi. Dette er en almindelig fejl for nye programmører.

string kodeord = "Hemmelig123";
string indtastetKodeord = "Hemmelig123";
bool erKorrekt = kodeord == indtastetKodeord; // Resultat: true
int a = 5;
int b = 6;
Debug.Log(a == b); // Resultat: false

Ikke lig med (!=)

Operatoren != er det direkte modsatte af ==. Den returnerer true, hvis de to operander ikke er lig med hinanden. Den er nyttig til at kontrollere, om en tilstand har ændret sig fra en bestemt værdi.

string spilStatus = "Spiller";
bool erSpilletSlut = spilStatus != "Spiller"; // Resultat: false
spilStatus = "Game Over";
erSpilletSlut = spilStatus != "Spiller"; // Resultat: true

Sammenligningstabel for Operatorer

For at give et hurtigt overblik er her en tabel, der opsummerer de seks sammenlignings- og ligestillingsoperatorer.

OperatorDansk NavnBeskrivelseEksempel (returnerer true)
<Mindre endReturnerer true, hvis venstre værdi er mindre end højre.9 < 10
>Større endReturnerer true, hvis venstre værdi er større end højre.11 > 10
<=Mindre end eller lig medReturnerer true, hvis venstre værdi er mindre end eller lig med højre.10 <= 10
>=Større end eller lig medReturnerer true, hvis venstre værdi er større end eller lig med højre.10 >= 10
==Lig medReturnerer true, hvis begge værdier er ens.10 == 10
!=Ikke lig medReturnerer true, hvis værdierne ikke er ens.9 != 10

Praktisk Eksempel: Styring af en Dør i et Spil

Lad os se på et praktisk eksempel fra spiludvikling. Forestil dig en by i et rollespil (RPG), hvor huse kun er åbne for spilleren på bestemte tidspunkter af dagen, f.eks. fra kl. 9 om morgenen til kl. 17 om aftenen. Vi kan bruge sammenligningsoperatorer til at styre denne logik.

Vi kan definere nogle variabler til at styre dette:

// Vi bruger et 24-timers urformat
private bool erDoerenAaben;
private int nuvaerendeTime = 10; // Lad os sige, klokken er 10:00
private int aabningstid = 9;
private int lukketid = 17;

Nu kan vi i vores spils opdateringsløkke bruge if-udsagn og sammenligningsoperatorer til at afgøre, om døren skal være åben eller lukket.

// Tjek om den nuværende tid er efter åbningstiden OG før lukketiden
if (nuvaerendeTime >= aabningstid && nuvaerendeTime < lukketid)
{
erDoerenAaben = true;
}
else
{
erDoerenAaben = false;
}// Nu kan vi bruge 'erDoerenAaben' til at styre adgang
if (erDoerenAaben == true)
{
Debug.Log("Døren er åben. Spilleren kan gå ind.");
}
else
{
Debug.Log("Døren er lukket. Spilleren kan ikke gå ind.");
}

I dette eksempel, fordi nuvaerendeTime er 10, er betingelsen 10 >= 9 sand, og 10 < 17 er også sand. Derfor bliver erDoerenAaben sat til true, og spilleren kan gå ind. Hvis nuvaerendeTime var 18, ville den anden betingelse (18 < 17) være falsk, og døren ville være lukket. Dette simple eksempel viser, hvor kraftfulde og essentielle disse operatorer er for at skabe dynamisk og responsiv logik.

Andre Vigtige Operatorer at Kende

For at give dig en mere komplet værktøjskasse, er her en kort gennemgang af andre operatortyper.

Aritmetiske Operatorer

Disse er grundlaget for al matematik i kode. De inkluderer + (addition), - (subtraktion), * (multiplikation), / (division) og % (modulus, som giver resten af en division). Unære operatorer som ++ (inkrementer med én) og -- (dekrementer med én) er også utroligt almindelige.

Logiske Operatorer

Disse bruges til at kombinere flere booleske udtryk. De vigtigste er && (logisk OG - begge sider skal være sande), || (logisk ELLER - mindst én side skal være sand) og ! (logisk IKKE - inverterer en boolesk værdi fra sand til falsk eller omvendt). Vi brugte && i vores dør-eksempel for at kombinere to sammenligninger.

Ofte Stillede Spørgsmål (FAQ)

Hvad er den primære forskel mellem `=` og `==` i C#?

Dette er en klassisk faldgrube for begyndere. Enkelt lighedstegn = er en tildelingsoperator. Den bruges til at tildele en værdi til en variabel (f.eks. int x = 5;). Dobbelt lighedstegn == er en sammenligningsoperator. Den bruges til at sammenligne to værdier for at se, om de er ens, og returnerer true eller false (f.eks. if (x == 5)).

Kan sammenligningsoperatorer bruges på andet end tal?

Ja. For eksempel kan de bruges til at sammenligne char-værdier baseret på deres alfabetiske rækkefølge. For strenge og andre komplekse objekter bruges == og != ofte til at tjekke for lighed, men deres opførsel kan variere afhængigt af typen (om de sammenligner reference eller værdi).

Hvad betyder "short-circuiting" i forbindelse med logiske operatorer?

Dette refererer til opførslen af de betingede logiske operatorer && (OG) og || (ELLER). Med &&, hvis den venstre operand evalueres til false, evalueres den højre operand slet ikke, fordi det samlede resultat umuligt kan blive true. Tilsvarende med ||, hvis den venstre operand er true, evalueres den højre ikke, fordi resultatet allerede er garanteret at være true. Dette kan forbedre ydeevnen og forhindre fejl.

Hvorfor returnerer en sammenligning med NaN altid false?

NaN står for "Not a Number". Det er en speciel flydende-komma-værdi, der repræsenterer et udefineret eller urepræsenterbart resultat (f.eks. division med nul). Ifølge IEEE 754-standarden kan NaN ikke sammenlignes på en meningsfuld måde. Derfor vil enhver sammenligning som NaN < 5.0 eller endda NaN == NaN altid resultere i false.

Konklusion

Operatorer er sprogets verber; de er handlingerne, der får vores kode til at leve. Mens alle operatortyper har deres plads, er sammenligningsoperatorer særligt vigtige, da de danner grundlaget for al beslutningstagning og logik i et program. Ved at mestre brugen af <, >, <=, >=, ==, og !=, og forstå hvordan man kombinerer dem med logiske operatorer, tager du et afgørende skridt mod at blive en dygtig og selvsikker C#-udvikler. Fra at styre en simpel dør i et spil til at håndtere kompleks forretningslogik, er det disse simple symboler, der giver dig kontrollen.

Hvis du vil læse andre artikler, der ligner Guide til Sammenligningsoperatorer i C#, kan du besøge kategorien Sundhed.

Go up