Excerpt |
---|
En kontrollstruktur styrer hvilken slags kode som kjører når. Denne siden oppsummerer de viktigste kontrollstrukturene og peker videre til sider som tar for seg hver type. |
...
Et prosedyreorientert program består av setninger som utføres i sekvens, så uten noen spesielle konstrollstrukturer vil all koden bli utført én og bare én gang. Koden under illustrerer poenget:
...
Illustrasjon av koden med et flytskjema. Kontrollflyten går nedover fra boks til boks. Først skrives spørsmålet ut, så venter programmet på input (som bør være et tall) fra brukeren og til slutt skrives en ny melding ut.
|
|
Betingelser med if-then-else
...
Kontrollflyten har en forgreining, hvor verdien av betingelsen (true eller false) avgjør hvilken grein som tas.
Her brukes if-nøkkelordet for å angi at print-setningen kun skal utføres hvis betingelsen ageInput.isdigit() er sann.
|
I Java Her brukes if-nøkkelordet for å angi at print-setningen kun skal utføres hvis betingelsen er sann. I Python brukes innrykk for å knytte setninger til true/sann- og false/usann-greinene. I Java tillates bare én setning eller gruppe med setninger i hver grein, og derfor må en gruppere setninger med { og } for å kunne ha flere av dem.
|
Dette kalles gjerne betinget utførelse, siden setningene i de to greinene utføres bare hvis en bestemt betingelse er true/sann eller false/usann. Det finnes flere varianter, f.eks. kan en utelate else-delen eller ha en ny if i else-delen for å håndtere flere tilfeller.
...
|
|
...
I en del løkker er poenget å behandle et sett med data, så betingelsen koker ned til om det er mere data igjen. Istedenfor å gjøre at det må gjøres "manuelt" med en while-løkke med en teller som øker og sjekkes mot antall data-elementer, så har en del språk en egen kontrollstruktur som gjerne kalles for-each, for å gå gjennom alle data-elementer i en samling. En slik for-each-løkke holder både styr på om det er flere data-elementer igjen og sørger for å sette en løkke-variabel til neste element i rekka:
Gjør noe for hvert element i en liste
|
|
Dette er et eksempel på en data-dreven løkke, som står sentralt i mange typer databehandling. Ikke alle språk har en egen for-each-kontrollstruktur og ikke alle type data støttes heller, men det er greit å tenke på dette som en egen teknikk som har sine konvensjoner og standardløsninger.
Les mer om dette her: Data-drevne løkker
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.
...