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:
Denne tabel viser, hvordan de logiske operatorer OR (||), AND (&&), og NOT (!) fungerer med forskellige kombinationer af boolske værdier A og B.
Tabellen illustrerer alle mulige kombinationer af A og B og viser, hvordan de påvirker resultaterne af de logiske operationer.
Forestil dig, at du vil tage på en udflugt, men du har nogle betingelser, der skal opfyldes først:
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.");
}
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.
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.
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.
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.