Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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:

Code Block
languagepython
linenumberstrue
print('HvaHvor gammel heterer du?')
nameage = int(input())
print('HeiNeste år blir du ' + str(age + name1) + ' år!')

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.:

Code Block
print('Hvor gammel er du?')
ageInput = input()
if (ageInput.isdigit()):
    print('Neste år blir du ' + str(int(ageInput) + 1) + ' år!')

 

 

 

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 kontrollstrukturerbetingelser, 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.

...