Betingedesaetninger

Logiske operatorer

Introduktion

Når vi arbejder med betingede sætninger, kan det være nødvendigt at kombinere flere betingelser. Det er her, logiske operatorer kommer ind i billedet. Logiske operatorer giver os mulighed for at forbinde flere betingelser i én if-sætning og bestemme, hvordan disse betingelser skal evalueres i forhold til hinanden. De mest almindelige logiske operatorer er:

  1. AND(&&)
  2. OR(||)
  3. NOT(!)

Logiskeoperatorer Denne tabel viser, hvordan de logiske operatorer OR (||), AND (&&), og NOT (!) fungerer med forskellige kombinationer af boolske værdier A og B.

  • A || B (OR): Er TRUE, hvis mindst én af A eller B er TRUE.
  • A && B (AND): Er TRUE, kun hvis både A og B er TRUE.
  • !A (NOT): Inverterer værdien af A. Hvis A er TRUE, bliver resultatet FALSE, og omvendt.

Tabellen illustrerer alle mulige kombinationer af A og B og viser, hvordan de påvirker resultaterne af de logiske operationer.

Eksempel fra det virkelige liv

Forestil dig, at du vil tage på en udflugt, men du har nogle betingelser, der skal opfyldes først:

  1. Vejret skal være godt (det må ikke regne).
  2. Du skal have tid til det (ingen vigtige opgaver eller arbejde).
  3. Hvis din ven kan tage med, er du villig til at tage afsted, selvom du har en opgave, så længe vejret stadig er godt.

Dette kan skrives som en betinget sætning med logiske operatorer:

 
boolean regner = false; // Det regner ikke
boolean harOpgaver = false; // Du har ingen vigtige opgaver
boolean venKanTageMed = true; // Din ven kan tage med

if (!regner && (!harOpgaver || venKanTageMed)) {
    println("Du kan tage på udflugt!");
} else {
    println("Du bliver hjemme.");
}
AND (&&)

Operatoren && bruges til at kombinere to eller flere betingelser, hvor alle betingelser skal være sande for, at den samlede betingelse er sand.

 
int alder = 20;
int point = 75;

if (alder > 18 && point > 70) {
    println("Du er kvalificeret");
}

I dette eksempel evalueres begge betingelser (alder > 18 og point > 70). Kun hvis begge er sande, vil teksten “Du er kvalificeret” blive udskrevet.

OR (||)

Operatoren || bruges til at kombinere to eller flere betingelser, hvor mindst én betingelse skal være sand for, at den samlede betingelse er sand.

 
int alder = 16;
int point = 80;

if (alder > 18 || point > 70) {
    println("Du opfylder mindst ét af kravene");
}

Her vil teksten “Du opfylder mindst ét af kravene” blive udskrevet, fordi betingelsen point > 70 er sand, selvom alder > 18 er falsk.

NOT (!)

Operatoren ! bruges til at negere en betingelse. Hvis en betingelse normalt er sand, gør ! den falsk, og omvendt.

 
boolean erMedlem = false;

if (!erMedlem) {
    println("Du er ikke medlem");
}

I dette eksempel vil teksten “Du er ikke medlem” blive udskrevet, fordi betingelsen !erMedlem er sand, da erMedlem er falsk.

Quiz
 
int a = 10;

if (a > 5 && a < 15) {
    println("Mellem 5 og 15");
} else {
    println("Ikke mellem 5 og 15");
}

Hvad forventer vi at der vil ske når vi kører denne kode? Kopier koden ind i Processing og se hvad der sker.


 
int b = 7;

if (b == 5 || b == 7) {
    println("5 eller 7");
} else {
    println("Ikke 5 eller 7");
}

Hvad forventer vi at der vil ske når vi kører denne kode? Kopier koden ind i Processing og se hvad der sker.


 
boolean erVoksen = false;
boolean harTilladelse = true;

if (erVoksen || !harTilladelse) {
    println("Adgang nægtet");
} else {
    println("Adgang tilladt");
}

Hvad forventer vi at der vil ske når vi kører denne kode? Kopier koden ind i Processing og se hvad der sker.


 
boolean erHjemme = true;
boolean erVejretGodt = false;

if (!(erHjemme && erVejretGodt)) {
    println("Du går ud");
} else {
    println("Du bliver hjemme");
}

Hvad forventer vi at der vil ske når vi kører denne kode? Kopier koden ind i Processing og se hvad der sker.

Task Runner