...
Et program består av setninger som utføres i sekvens, så uten noen spesielle konstrollstrukturer vil all koden bli utfør utført én og bare én gang. Koden under illustrerer poenget:
| Eksempel på sekvens: 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. |
En kommer imidlertid fort bort i situasjoner hvor kode bare skal utføres i bestemte tilfelle, f.eks. hvis brukeren skriver inn uforståelig input, så skal det skrives ut en feilmelding. I koden under til venstre antas det at brukeren skriver inn et tall, men det vil kræsje hvis input-en ikke er gyldig:
...
PlantUML Macro |
---|
start print('Hvor gammel er du?') age = int(input()) print('Neste år blir du ' + str(age + 1) + ' år!') stop |
Betingelser
En kommer imidlertid fort bort i situasjoner hvor kode bare skal utføres i bestemte tilfelle, f.eks. vil koden over kræsje hvis input-en ikke er et gyldig tall. Det vil være lurt å bare utføre den siste linja hvis input-en faktisk er et tall.:
|
|
I andre tilfeller skal kode kjøres flere ganger, f.eks. så må jo brukeren få anledning til å prøve på nytt etter å ha fått feilmeldingen.
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 kontrollstrukturer: betingelser, løkker, og unntakshåndtering.
...
Her brukes if-nøkkelordet for å angi at print-setningen kun skal utføres hvis betingelsen ageInput.isdigit() er sann. |
Dette kalles betinget utførelse og det er vanlig
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.
...