Hjem » Siste artikler » If-setninger i C#: en enkel guide til trygge valg i programmene dine

If-setninger i C#: en enkel guide til trygge valg i programmene dine

Hovedillustrasjon
Hovedillustrasjon. Foto: Daniil Komov / Pexels.

Mange små og mellomstore prosjekter i C# faller sammen på grunn av én ting: uklare betingelser. Ikke fordi språket er vanskelig, men fordi logikken rundthva som skal skje nårblir rotete.

I denne artikkelen får du en praktisk og nybegynnervennlig gjennomgang av if-setninger i C#. Målet er at du skal skrive tydelige valg, unngå vanlige feil og lettere forstå hva programmet faktisk gjør.

Hva er en if-setning i C# egentlig?

En if-setning lar programmet ta en avgjørelse: hvis en påstand er sann, gjør noe, hvis ikke, hopp over eller gjør noe annet. Det handler ikke om magi, men om en enkel sann/usann-test.

I C# ser den enkleste varianten slik ut:

Eksempel:

int alder = 20;
if (alder >= 18)
{
Console.WriteLine("Du er myndig.");
}

Her sjekker vi om variabelen alder er større enn eller lik 18. Hvis det stemmer, kjører koden inne i klammeparentesene.

Grunnstruktur: if, else if og else

Ofte holder det ikke med ett enkelt valg. Du vil ha flere muligheter, nesten som en liten meny av scenarier. Da bruker du if, eventuelt flere else if, og til slutt en else som fanger opp alt annet.

Eksempel:

int poeng = 73;

if (poeng >= 90)
{
Console.WriteLine("Karakter: A");
}
else if (poeng >= 80)
{
Console.WriteLine("Karakter: B");
}
else if (poeng >= 70)
{
Console.WriteLine("Karakter: C");
}
else
{
Console.WriteLine("Karakter: D eller lavere");
}

Programmet går ovenfra og ned, og stopper ved første treff som er sann. Derfor er rekkefølgen viktig, og grensene må planlegges slik at de ikke overlapper.

Sammenligningsoperatorer du faktisk bruker

For at en if-setning skal fungere, trenger du en sammenligning som gir et ja/nei-svar. I C# bruker du blant annet:

  • > større enn
  • >= større enn eller lik
  • < mindre enn
  • <= mindre enn eller lik
  • == lik
  • != ikke lik

Vanlig felle:blande = og ==. Ett likhetstegn betyr tilordning (lagre verdi i variabel), mens to betyr sammenligning. I en if-setning skal du nesten alltid bruke == når du sjekker likhet.

Kombinerte betingelser med && og ||

Noen ganger holder det ikke å sjekke én ting. Du vil kanskje kreve både riktig alder og innlogget status, eller enten rabattkode eller VIP-medlemskap. Da bruker du logiske operatorer.

I C# er de viktigste:

  • &&(og): begge betingelser må være sanne
  • ||(eller): minst én betingelse må være sann
  • !(ikke): snur sann til usann og omvendt

Eksempel med og:

bool innlogget = true;
bool admin = false;

if (innlogget && admin)
{
Console.WriteLine("Vis admin-panel.");
}
else
{
Console.WriteLine("Vanlig bruker-visning.");
}

Eksempel med eller:

bool harRabattkode = true;
bool erVip = false;

if (harRabattkode || erVip)
{
Console.WriteLine("Gi rabatt.");
}
else
{
Console.WriteLine("Ingen rabatt.");
}

Lesbarhet: bruken av parenteser og mellomledd

Jo mer kompleks en betingelse blir, jo vanskeligere er den å lese og feilsøke. Ofte er det bedre å dele den opp i mindre biter enn å presse alt inn i én linje.

Dårligere lesbarhet:

if (alder >= 18 && harBetalt && !erUtestengt)

Bedre lesbarhet:

bool erMyndig = alder >= 18;
bool harGyldigTilgang = harBetalt && !erUtestengt;

if (erMyndig && harGyldigTilgang)
{
Console.WriteLine("Gi adgang.");
}

Dette koster noen ekstra linjer, men sparer deg ofte for tid når du senere lurer på hva som faktisk sjekkes.

Vanlige feil med if-setninger og hvordan du unngår dem

Noen typiske feil går igjen hos både nybegynnere og mer erfarne utviklere. Ved å kjenne dem igjen tidlig, slipper du mye unødvendig debugging.

1. Feil bruk av likhetstegn

Tematisk illustrasjon
Tematisk illustrasjon. Foto: Eduardo Rosas / Pexels.

Som nevnt: = lagrer verdi, == sammenligner. Mange IDE-er vil advare deg hvis du skriver noe som ser mistenkelig ut, men det er lurt å være bevisst på forskjellen selv.

2. Glemme klammeparenteser

I C# kan du skrive en if-setning uten klammeparenteser hvis den bare har én linje kode etter seg. Det fungerer, men blir fort sårbart når du senere legger til flere linjer.

Sikrere vane:bruk alltid { }, selv om du bare har én linje nå. Da unngår du at ny kode henger igjen utenfor if-blokken ved et uhell.

Null-sjekker: unngå krasj før betingelsen kjører

Hvis du jobber med referansetyper som strenger eller objekter, kan de være null. Hvis du prøver å bruke dem uten å sjekke først, kan du få unntak under kjøring i stedet for et kontrollert valg.

Eksempel uten sikring:

string navn = HentNavnFraDatabase();

if (navn.Length > 0)
{
Console.WriteLine("Hei " + navn);
}

Hvis navn er null, vil navn.Length krasje. Slik kan du gjøre det tryggere:

string navn = HentNavnFraDatabase();

if (!string.IsNullOrEmpty(navn))
{
Console.WriteLine("Hei " + navn);
}
else
{
Console.WriteLine("Hei der!");
}

Når bør du vurdere andre strukturer enn if

Hvis du merker at du har en svært lang kjede med if og else if, kan det være tegn på at en annen kontrollstruktur passer bedre. For eksempel:

  • switchnår du sammenligner samme variabel mot mange konkrete verdier
  • Oppslagstabell(for eksempel Dictionary) når du vil slå opp resultat basert på en nøkkel

Poenget er ikke å unngå if-setninger, men å velge struktur som gjør logikken din lettest å lese og utvide.

Slik øver du på å tenke i betingelser

Hvis if-setninger fortsatt føles litt abstrakte, kan du trene ved å oversette hverdagsbeslutninger til C#-logikk. Start med noe enkelt, for eksempel:

  • Hvis det regner, ta med paraply, ellers ta solbriller
  • Hvis handlekurven er over et visst beløp, gi fri frakt
  • Hvis brukeren ikke er innlogget, vis innloggingsskjema

Formuler først setningen på vanlig norsk, og skriv den deretter om til en if-setning. Etter noen runder vil du merke at det blir mer naturlig å se for seg hvordan programmet velger vei.

Oppsummering: bygg trygge valg steg for steg

If-setninger i C# er ikke vanskelige i seg selv, men de blir fort kompliserte hvis du stapper for mye inn i én betingelse, eller ikke tenker gjennom rekkefølge og lesbarhet. Begynn enkelt, gi mellomregninger navn, og bruk alltid klammeparenteser.

Med noen få gode vaner blir if-setningene dine et verktøy for tydelig logikk, i stedet for en kilde til skjulte feil.

0 kommentarer