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.