Hjem » Siste artikler » Logiske operatorer i programmering: praktisk guide for tryggere beslutninger i koden

Logiske operatorer i programmering: praktisk guide for tryggere beslutninger i koden

Hovedillustrasjon
Hovedillustrasjon. Foto: Chris Ried / Unsplash.

Logiske operatorer er noe av det første du møter i programmering, men også noe som skaper mange rare feil når prosjekter vokser. De brukes i alle if-setninger, løkker og valideringer, og likevel er det mange som bare “får det til å virke” uten å forstå helt hva som skjer.

Her får du en praktisk og jordnær gjennomgang av logiske operatorer. Målet er at du skal kunne lese, skrive og feilsøke betingelser tryggere, uansett om du jobber i JavaScript, Python, PHP eller et annet språk med lignende syntaks.

Hva er logiske operatorer egentlig?

En logisk operator kombinerer eller sammenligner logiske verdier (sant/usant) og gir et nytt resultat som også er sant eller usant. Det brukes til å ta beslutninger i koden, for eksempel om noe skal kjøre eller ikke.

De tre vanligste operatorene på tvers av språk er:

  • AND(ofte skrevet som&&ellerand)
  • OR(ofte skrevet som||elleror)
  • NOT(ofte skrevet som!ellernot)

Disse operatorene styrer nesten alle avgjørelser i koden din, som innlogging, tilgangskontroll, filtrering, validering av skjema og mye annet.

AND, OR og NOT med praktiske eksempler

Tenk at du bygger et lite innloggingssystem. Du vil at brukeren skal være aktiv, og at passordet skal være korrekt. I pseudokode kunne det sett slik ut:

AND:begge må være sanne

  • Hvisbrukeren er aktivANDpassordet er riktig,dalogg inn.
  • Hvis en av delene er usann, blir hele uttrykket usant.

OR:minst én må være sann

  • Hvisbrukeren er adminORhar spesialtilgang,datillat handlingen.
  • Her holder det at én av betingelsene er sann.

NOT:snur sant til usant og omvendt

  • HvisbrukerNOTer aktiv, vis melding om deaktivert konto.
  • NOT brukes ofte til å uttrykke “ikke” i logikken.

Typiske kodeeksempler på flere språk

La oss se på et konkret scenario: du vil sjekke at en bruker er over 18 år og har akseptert vilkårene. I JavaScript kan det se slik ut:

Eksempel JavaScript:

if (age >= 18 && hasAcceptedTerms) {
  console.log("Tilgang gitt");
}

I Python kan samme logikk skrives slik:

if age >= 18 and has_accepted_terms:
    print("Tilgang gitt")

Legg merke til at operatorene er like i betydning, selv om syntaksen varierer litt fra språk til språk. For nybegynnere er det nyttig å fokusere på tanken bak: kombinerer jeg betingelser med “og”, “eller” eller “ikke”?

Kortslutning: når koden din ikke sjekker alt

De fleste moderne språk bruker det som kalles “kortslutning” for AND og OR. Det betyr at språket slutter å evaluere videre hvis resultatet allerede er avgjort.

For AND (&&ellerand):

  • Hvis første betingelse er usann, trenger ikke resten sjekkes, for hele uttrykket blir uansett usant.

For OR (||elleror):

  • Hvis første betingelse er sann, trenger ikke resten sjekkes, for hele uttrykket er uansett sant.

Dette er praktisk både for ytelse og sikkerhet. For eksempel, du bør sjekke at et objekt finnes før du bruker det:

if (user && user.isActive) {
  console.log("Aktiv bruker");
}

Her vil ikke user.isActive bli evaluert dersom user er null eller undefined, noe som hindrer krasj.

Vanlige feil som gir forvirrende resultater

Logiske operatorer ser enkle ut, men skaper ofte subtil feiladferd. Her er noen klassikere du bør være obs på.

1. Blande AND og OR uten parenteser

Tematisk illustrasjon
Tematisk illustrasjon. Foto: Markus Winkler / Pexels.

Uttrykket a && b || c kan bety noe annet enn du tror. De fleste språk prioriterer AND foran OR, litt som multiplikasjon foran addisjon i matte.

For å unngå misforståelser, bruk parenteser der du vil styre rekkefølgen:

  • (a && b) || c: enten både a og b, eller c alene er sann.
  • a && (b || c): a må være sann, og minst en av b eller c må være sann.

Disse to uttrykkene gir ofte helt forskjellig adferd i kode som sjekker tilgang eller regler.

2. Sannhetstabeller og “truthy” verdier

Mange språk har ikke bare true og false, men også verdier som behandles som “sanne nok” eller “usanne nok”. For eksempel i JavaScript regnes blant annet 0, tom streng og null som usanne verdier.

Uttrykket:

if (username && password) { ... }

vil feile dersom username er en tom streng. Det kan være ønsket, men du bør vite at du ikke bare sjekker “eksisterer variabelen”, du sjekker også at verdien oppfattes som sann.

3. Bruke likhet der du burde bruke logikk

Noen ganger ser man kode som:

if (isAdmin == true) { ... }

Det fungerer, men er unødvendig og noen ganger forvirrende. Det holder ofte å skrive:

if (isAdmin) { ... }

Bruk likhetsoperatorer til å sammenligne verdier, og logiske operatorer til å kombinere betingelser. Det gjør koden mer lesbar.

Strategi for å skrive lesbar og trygg logikk

God bruk av logiske operatorer handler ikke bare om syntaks, men også om å gjøre koden forståelig for neste person som leser den, inkludert deg selv om tre måneder.

Noen praktiske tips:

  • Gi variablene gode navn: isActive er lettere å forstå i en betingelse enn a1.
  • Del opp kompliserte uttrykk: i stedet for én lang if-setning, lag mellomvariabler med forklarende navn.
  • Bruk parenteser bevisst: ikke stol blindt på rekkefølgen språket bruker, gjør hensikten tydelig.
  • Tenk i naturlig språk først: formuler regelen med ord, oversett den deretter til kode.

Tren på små, konkrete oppgaver

Hvis du synes logiske operatorer er forvirrende, er det nyttig å trene på små scenarier som ligner ekte brukssituasjoner. For eksempel:

  • Skriv en betingelse som gir rabatt hvis kunden er student og under 30 år, eller hvis kunden har gullmedlemskap.
  • Lag en sjekk som bare tillater innlogging hvis kontoen ikke er låst, ikke er slettet og passordet stemmer.
  • Bygg en filtreringsfunksjon som finner produkter som er på lager og enten har kampanjepris eller er nye.

Løs dem først med naturlig språk, deretter i kode. Test med forskjellige verdier og se om koden oppfører seg som forventet. Denne øvelsen gir mye bedre forståelse enn å bare lese dokumentasjon.

Oppsummert: gjør logikken eksplisitt

Logiske operatorer er kjernen i alle beslutninger i koden din. Små misforståelser kan gi store konsekvenser, som feil tilgang, rare valideringsfeil eller sikkerhetsproblemer.

Nøkkelen er å skrive betingelser som både datamaskinen og mennesker forstår. Bruk gode navn, parenteser og mellomsteg, og test alltid logikken din med både “vanlige” og uvanlige verdier. Da blir AND, OR og NOT verktøy du stoler på, ikke kilder til mystiske feil.

0 kommentarer