I det engelske sprog har vi forskellige typer af ord,
som navneord, adjektiver, forholdsord, udsagnsord.
Der er forskellige regler, der fortæller os,
hvordan vi sammensætter disse ord.
Hvis jeg sagde, "Hund bøger min spiser", så vil du sige, "hvad betyder det?".
Hvis du ikke allerede ved det,
så kan du åbenbart ikke sætte to navneord foran et stedord foran et udsagnsord.
Den går ikke.
Men hvis jeg bytter om på dem og siger, "Min hund spiser bøger",
så ville du helt sikkert vide, hvad jeg mener.
Jeg kan erstatte udsagnsordet "spiser" med et andet udsagnsord som "kaster"
og det vil grammatisk set give mening,
selvom du måske ikke kan forstille dig, at min hund kaster en bog.
I programmering i stedet for forskellige typer af ord,
har vi disse ting kaldet data typer.
Du har allerede set en af dem: tal.
Vi bruger ofte tal i vores tegne kode.
I det engelske/danske sprog giver det nogle gange mening at bruge tal
og andre gange gør det ikke.
Hvis jeg i denne funktion for baggrund taster >100-<
så bør det der kommer bagefter være et tal
eller noget der kan udregnes til et tal som >(14 + 15)<.
Hvis jeg i stedet tastede >100< mellemrum, så kan jeg ikke sætte et tal bagefter
da >100 10< ikke giver mening.
En anden type værdi i programmering kaldes Boolske værdier.
Den hedder Boolsk fordi en fyr ved navn George Boole opfandt den.
I modsætning til typen for tal, som kan have masser af værdier,
så kan en Boolsk type kun have to værdier: sand eller falsk.
Du kan se, når jeg taster dem, så bliver de blå,
hvilket betyder de er meget særlige ord.
Du har allerede brugt den Boolske type, selvom du måske ikke var klar over det
i 'if' sætninger!
Lad os se, hvordan de virker.
Jeg erklærer en variable >var number = 40; og giver den en værdi, 40 og
taster >if (number < 50)<, så vil jeg tegne den første ellipse.
Jeg klippe klistrer dette ind i if sætningen
og indrykker ved at vælge det hele og taste tab.
Nu siger denne sætning, "if 'number' < 50"
hvilket den er, så vil jeg tegne ellipsen øverst til venstre".
Hvis jeg laver 'number' større end 50, så forsvinder ellipsen.
Dette inde i parentesen er faktisk et boolsk udtryk.
Husk et matematik udtryk udregnes til et tal, som 3 + 2 + 4 ⋅ 8.
Et Boolsk udtryk udregnes til en Boolsk værdi.
En god måde at tjekke om et udtryk udregnes til en Boolsk værdi er
at sætte "Er" foran og stille det som et spørgsmål.
Hvis det lyder som et ja/nej spørgsmål, så ved du det er et Boolsk udtryk.
Her siger vi altså, "Er 'number' < 50?"
Ja det er, så det er et Boolsk udtryk.
Hvis jeg derimod har "4 + 4" og
siger, "Er 4 + 4?"
Nej, det er ikke et Boolsk udtryk.
Tilbage til vores if sætning.
Jeg kan putte hvad som helst inde i parentesen,
så længe det er en Boolsk værdi eller et Boolsk udtryk.
Jeg kan taste >if (true)< og så vil ellipsen altid tegnes.
Eller jeg kan taste >if(false)< og så bliver ellipsen aldrig tegnet.
Jeg kan også taste >if (3 < 4)<, som er et Boolsk udtryk,
der altid vil være sandt - lidt dumt - da ellipsen så altid bliver tegnet.
Eller >if(3>4)< og det vil altid være falsk.
Jeg kan også tildele Boolske værdier til variable, således:
Jeg laver en ny variabel >var winstonIsCool<
og tildeler den en Boolsk værdi, som 'true' eller 'false'.
Jeg vælger >= true;<, da Winston jo er cool.
Nu da variablen har en Boolsk værdi,
så kan jeg indsætte den i denne 'if' sætning
og du kan se, at ellipsen tegnes, fordi 'winstonIsCool' er sand.
Jeg kan også erstatte dette med et Boolsk udtryk,
som >2 < 4<.
Når du laver en variable, der skal bruge en Boolsk værdi,
så bør du give den et navn, der beskriver betingelsen, når den er sand.
Du kan tjekke om du har valgt et godt navn for variablen ved,
at putte navnet ind i if sætningen og se om betingelsen giver mening.
Glem 'winstonIsCool', det ved vi allerede er sandt.
Lad os sige jeg navngiver en variabel 'muffins'.
"if (muffins)", hmm.
Det betyder ingenting, så det er et dårligt navn for en variabel.
Hvis jeg siger "If (muffinsAreBaking)", så fortæller det mig,
når denne variabel er sand, så bager vi muffins.
Spørg mig ikke hvilken slags, det er ikke vigtigt.
Lad os gå tilbage til >if (number < 50)<
Cool.
Lad os se på nogle andre Boolske udtryk.
Du har allerede set mindre end < og større end >,
men du kan også tjekke om noget er mindre end eller lig med.
Lad os prøve >if (number <= 48)<
Vi kan også prøve >if (number >= 48)<.
Hvis det er sandt, så tegnes ellipsen øverst til højre.
Indryk.
Hvis du vil tjekke om to ting er lig med hinanden,
så tastes >if (number === 48)<., altså tre lighedstegn efter hinanden.
Det er ligesom det lighedstegn, du bruger i matematik,
men du har tre af dem efter hinanden.
Lidt vel rigeligt, ikke?
Til sidst kan vi tjekke om to ting IKKE er lig hinanden ved at at taste
>if (number ! == 48)<
Dette er for den sidste ellipse.
Øverst kan vi se, at 'number' er lig 48.
Det er derfor mindre eller lig med 48, og ellipsen øverst til venstre tegnes.
Det er også større end eller lig 48 og lig 48,
men det er ikke IKKE lig 48, så derfor mangler ellipsen nederste til højre.
Vi kan ændre værdien af 'number', du kan se det ændrer, hvilke ellipser der tegnes.
Nu kender I til Boolske udtryk.
Ligesom matematiske udtryk, så kan Boolske udtryk blive ret kompliceret.
Men det vil vi snakke om en anden gang.