Logik
Betingede erklæringer
Frem til dette punkt har vi været nødt til at være yderst specifikke med den retning, vores programmer kan tage. Men hvad nu hvis vi vil styre den måde computeren læser koden på?
Betinget logik
Når vi taler om at træffe beslutninger i computeren, er det normalt at evaluere boolske udtryk, der har formularen:
if this, then that.
Det vil sige, hvis this (et booleske udtryk) er sandt, så gør that. Vi kan udvide dette til også at sige, hvis this er falsk (ikke sandt) så ikke that.
Booleske udtryk
Hvad er så en boolsk udtryk? Et booleskt udtryk er en erklæring, der er enten true (sandt) eller false (falsk), eksempler omfatter:
- “Det regner.”
- “Verdensrekordet for den største gummibåndsbold er 5,495 kg.”
- “Jeg kan lide katte.”
Alle disse udsagn er enten sande eller falske. Eksempler på noget, der ikke er et booleskt udtryk:
- “Hvilken farve er himlen?”
- “Hvorfor er der så få enhjørninger tilbage?”
- “Hvordan fixer du en utæt vandhane?”
Relationel Operator
Der er forskellige måder at opbygge boolske udtryk på, men en af de nemmeste måder at gøre det på er at bruge en relationsoperatør. En relationel operator undersøger forholdet mellem to ting i dit program og returnerer enten true eller false. f.eks. “5 > 4” er true, mens “5 > 6” er false. Lad os tage et kig på nogle flere relationelle operatører.
Operator | Symbol |
lig med | == |
ikke lig med | != |
mindre end | < |
større end | > |
mindre eller lig med | <= |
større eller lig med | >= |
Disse giver formentlig en rimelig mening – undtagen måske de to første. Du kan måske undre dig: “Hvorfor skal jeg bruge et dobbelt-ligheds-tegn? Det synes dumt.” Og du er ikke forkert, men husk at vi allerede har set = blive brugt som erklærings-operator. Når vi erklærer en variabel, bruger vi = til at tildele en værdi til variablen. Computere, som de er, kan ikke finde ud af, hvornår du vil at = skal være en erklæring soperatør, og hvornår det er en relationsoperatør, hvorfor vi skal komme op med et nyt symbol, derfor == (OBS: === kan også bruges. Hvad betyder det?)
Næste på listen er den ikke-lige-med operatør. Jeg er sikker på, at du ved, hvordan man skriver symbolet “≠” (ikke lige med) på computeren, men ikke alle gør det, og hvem vil gerne jage rundt hver gang du vil spørge om to ting ikke er de samme. Så i stedet bruger vi “!”. Så hvorfor ikke “!==” ? Stort spørgsmål…
Hvis-sætninger
Nu bliver spørgsmålet, “hvordan bruger vi det i praksis?” Og svaret er “if-sætninger“. Hvis vi går tilbage til den oprindelige formulering “if this, then that“, så kan vi udvide dette til nogle pseudokoder.
if(this boolean expression is true){ //then = That is a comment doThis(); }
Omvendt, hvis det boolske udtryk inde i “()” er falsk, så gør det ikke that.
Ellers, ellers hvis, OG, ELLER
I den afsnit anvendte vi if-sætninger til at skabe en anden kontrolstruktur for vores programmer. Nu, i stedet for bare blindt at gøre det samme igen og igen, kan vi hver gang gøre forskellige ting gennem koden baseret på nogle enkle regler. I dette afsnit vil vi udvide, hvad der er muligt med if, if else, AND og OR-sæninger.
if(this is true){ //do this; } else { //do this; }
Ellers hvis
Dette er fint, så længe vi kun har to betingelser, som vi vil håndtere. I dette tilfælde kan vi følge et else med en anden if-erklæring og en anden else og så videre. Det er dog god praksis at altid ende med en else uden et else if, så det er muligt at fange alle andre forhold, der ikke er specifikt adresseret.
if(this is true){ //do this; } else if(this is true){ //do this; } else { //do this; }
OG og ELLERS
Denne AND og OR er hvad der betegnes som logiske operatører. I programmeringen skriver vi dem som “&&” og “||”, og ligesom alle andre ting i computerprogrammering har den en meget streng definition og brug.
Kommentarer
Kommentarer er ord og sætninger skrevet i vores kode, som ikke læses af computeren. Der er to typer kommentarer, du kan bruge: enkelt og multilinje kommentarer.
Enkeltlinje kommentarer kan placeres overalt i koden ved at skrive “//”. Alt, der kommer efter det, læses ikke af computeren f.eks.
Multilinje kommentarer kan være særligt nyttige øverst i din kode for alle de vigtige oplysninger, som du måske vil gøre opmærksom på. Multilinje kommentarer begynder med “/*” og slutter med “*/”. Alt inde i disse tags vil blive betragtet som en kommentar og ikke læst af computeren.
//This is inline comment /* This is a multiline comment. They're truly a pleasure to use, and good looking to boot. */
Så hvordan ser det ud for dig? Fra nu af skal al din kode, som du laver, begynde med følgende:
//Your Name //Homework Title //Date /*A brief explanation of what your code does.*/
Hvorfor skal jeg kommentere min kode?
- Kommentarer gør din kode lettere at forstå – ikke sværere!
- Kommentarer viser forståelse.
Hvornår skal jeg kommentere min kode?
Kommentér din kode, når du skal klarlægge en bestemt beslutning, ikke blot gentage, hvad koden allerede siger. De bedste kommentarer er dem, du ikke behøver.
The practitioner of literate programming can be regarded as an essayist, whose main concern is with exposition and excellence of style. Such an author, with thesaurus in hand, chooses the names of variables carefully and explains what each variable means. He or she strives for a program that is comprehensible because its concepts have been introduced in an order that is best for human understanding, using a mixture of formal and informal methods that reinforce each other. -Donald E. Knuth
Boolske variabler
Dette afsnit tager et kig på en særlig type variabel kaldet en boolesk variabel. Disse kan være meget nyttige, hvis du vil spørge computeren, om noget er TRUE eller FALSE.
Numre i computeren
Du har sikkert hørt udtrykket “binære” før i forhold til computere. Hvad det betyder er, at computere gemmer oplysninger som enten 0 eller 1. For det meste bruger vi decimaltallene 0-9 til at gemme tal. Så hvordan opbevarer en computer nummer 9? Vi vil se nærmere på dette senere, men lad os bare sige, at computeren konverterer dette nummer til den binære værdi (1001) og gemmer den derefter i hukommelsen.
- Ethvert hele tal (1, 42, -1925, etc.) hedder et helt tal eller en int.
- Hvis nummeret har en decimaltegn tilknyttet det (1.294, 3.1416, -283.1129) kaldes det et floating point nummer eller en float.
- Vi kan også gerne gemme andre ting end tal som et char,
- strings str (en samling af chars)
- eller endda hele objekter
Datatypen, som vi skal se nærmere på, er den boolske bool datatype. En boolesk variabel er en særlig variabel, der kun kan have to mulige værdier, true eller false. Hvis du tænker på en lyskontakt, kan den kun være i to mulige tilstande – til eller fra. Et simpelt matematisk problem – rigtigt eller forkert. I vores computerprogrammer kan vi måske stille et spørgsmål som “er musen inde i denne rektangel, hvis så, gør rektanglet blåt” og svaret er enten sandt eller falsk.
Fortsæt til næste side.