You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

Kontrollstrukturer er kode som velger når annen kode skal kjøres. Uten kontrollstrukturer ville man jobbet seg nedover programkoden linje for linje, og utført hver eneste én. Det ville skapt mange tungvinte programmer!

Kodeflyt skjer primært ved å velge mellom forskjellige kodeblokker eller ved å gjennomføre en kodeblokk flere ganger. Vi skiller gjerne mellom tre ulike kontrollstrukturerbetingelser, løkker, og unntakshåndtering.

Betingelser

Betingelser er også kjent som if-setninger. Alle betingelser stiller et spørsmål som svares med enten "ja" eller "nei". I programmeringssjargong sier vi at uttrykket må kunne evalueres til sant eller usant, og omfatter derfor et boolsk uttrykk.

Den enkleste form for betingelse er en if-else spørring. Denne evaluerer et uttrykk til sant eller usant, og velger en programflyt avhengig av dette. I figuren under ser du et eksempel på en slik spørring, som er et forenklet sekvensdiagram for kjøring av Java-programmer. Det er prosessen "Run java program" som er if-delen av betingelsen, og "Give error message" som er else-delen av betingelsen. 

Simple if-elseIf...JDK is installedJDK isnotinstalledRun javaprogramGive errormessage

 

Noen ganger ønsker man å velge mellom flere enn to kodeblokker. Dette kan enten gjøres med en nøstet if. Ta et program der en faglærer gir inn poengsum, og får ut en bokstavkarakter:

Noen ganger blir det mange slike spørringer nøstet 

Løkker

Løkker er kode som utføres flere ganger. Det er vanlig å skille mellom while-løkker og for-løkker. En while-løkke sjekker en betingelse, og gjennomfører koden i løkkekroppen så lenge denne betingelsen er sann. Man må være forsiktig når man skriver while-løkker; dersom ikke betingelsen er formulert riktig kan man ende opp med det som kalles en "uendelig løkke". 

En for-løkke er et spesialtilfelle av en while-løkke, og brukes dersom man vet hvor mange ganger løkkekroppen skal utføres. Man har en tellevariabel som endres hver gang løkken har kjørt, og til slutt er tellevariabelen så stor eller liten at løkken er ferdig. Det er også mulig å få for-løkker til å kjøre uendelig, så vær forsiktig med bruken av denne også. For å implementere en for-løkke trenger man (1) en startverdi for tellevariabelen, (2) en sluttverdi for tellevariabelen, og (3) hvor mye man ønsker å endre tellevariabelen etter hver løkke. 

Unntakshåndtering

Unntak er hendelser i et program som helst ikke skal skje. Dersom man har en liste med 4 elementer,  og man spør om hva som er det 5. elementet vil det i de fleste programmeringsspråk oppstå et unntak. Det er god programmering å skrive kode slik at man i høyest mulig grad unngår unntak. I eksempelet over betyr det å sjekke om listen inneholder 5 elementer før man spør etter det 5. elementet.

Det finnes også mekanismer som fanger opp unntak og behandler disse. Dette kan ses på som en spesiell betingelse: hvis et unntak oppstår, så kjør denne koden.

  • No labels