Rækkefølge i kode

Tags:    c++

Hej

Jeg er lige nu ved at lære at programmere C++, og det er første gang, at jeg beskæftiger mig med programmering.

Jeg gør brug af bogen "Beginning C++ Through Game Programming, Second Edition" (Michael Dawson) og er ved at have rimelig styr på tingene indtil videre.

Er nået til kapitel 5, som omhandler forskellige funktioner, og hvordan man opdeler sin kode i mindre bidder.

Jeg har skrevet følgende stykke kode til konsollen, som meget simpelt beder brugeren om at indtaste 'y' eller 'n' to gange:
http://pastebin.com/4FdLJ3kT (hvis der findes en bedre måde at dele kode på end Pastebin, må I sige til)

Jeg har dog svært ved helt at forstå, hvordan tingene sker. Mere specifikt har jeg svært ved at forstå den rækkefølge, computeren vælger at køre programmet i.

Meningen er, at jeg har to separate funktioner, som bliver ved med at spørge, indtil at man indtaster enten 'y' eller 'n'. Det er jeg med på.

Jeg kan dog ikke se, hvorfor den ikke kører koden i main() først. Efter min intuition burde den først skrive "Thanks for answering: ", da dette stykke kode jo står før alt andet.

Der er et eller andet, som mangler i min forståelse af, hvordan et stykke kode bliver udført. Jeg troede, at den kørte det lineært igennem, altså læser/udfører tingene i den rækkefølge, de står i, således at det, der står øverst, kommer først.

Nogen som kan hjælpe mig med at forklare, hvordan tingene hænger sammen?

På forhånd mange tak! :)



I linie 15 kalder du en funktion, som prompter noget i konsollen. Først når du indtaster 'y' eller 'n' kommer du forbi linie 31 og dermed ud af funktionen igen; for derefter at fortsætte med linie 16.

Så forventet i konsollen:
> Please enter 'y' or 'n':y
> Thanks for answering: y



Så følgende betyder altså, at funktionen askYesNo1(); skal køres, før der fortsættes?

char answer1 = askYesNo1();



Præcis



Er der nogen fordel ved at definere funktionerne efter main()? Umiddelbart skulle man tro, at det vil være bedst at gøre det hele før, således at computeren nemmere kan "hive" de rigtige ting frem, når de skal bruges.



Er der nogen fordel ved at definere funktionerne efter main()? Umiddelbart skulle man tro, at det vil være bedst at gøre det hele før, således at computeren nemmere kan "hive" de rigtige ting frem, når de skal bruges.


Det korte svar: nej

Det lidt længere svar er at funktioner kan i princippet erklæres i den rækkefølge som man syntes passende. Selve ordenen bør afspejle overblikket over koden og ikke nødvendigtvis den række følge det blev skrevet i.

Når det så er sagt, skal der tilføjes at i C++ skal man med nogle få undtagelser, altid sørge for at deklarere funktionerne og variabler før man bruger dem. Det er derfor at du har:

Fold kodeboks ind/udKode 


før din main funktion.



t