Programmer består av instruksjoner (variabeldeklarasjoner, tilordning, osv.) som utføres sekvensielt i den rekkefølgen de er skrevet.
Hvis vi ønsker å gjøre ting flere ganger (gjentagelser, løkker) og slippe å skrive det samme om og om igjen, bruker vi løkker eller lager en funksjon/prosedyre av det vi ønsker å gjenta.
Se kapittel 5: Løkker/iterasjoner (kontrollstrukturene for, while, do) og funksjoner.Hvis vi ønsker å gjøre noe bare hvis en betingelse er oppfylt, bruker vi valg; kontrollstrukturene if og switch.
Alle programmerignsspråk har en "hvis"- kontrollstruktur..
if(tall>10) { trace("Tallet "+tall+" er større enn 10"); } else { trace("Tallet "+tall+" er mindre eller lik 10"); }//if
Betingelsen inne i parentesen til if, tall>10, er et logisk uttrykk som enten er sant eller usant. (true eller false).
Her er variabelen tall Number eller int, mens hele uttrykket tall>10 er Boolean! (Boolean: Logisk datatype: true eller false)
Logiske uttrykk kan kombineres med operasjonene og, eller: og ikke, eksempelvis:
Eksempel på OG og IKKE:
if( godtsiktet && vapenladd && !bevegelse) { // && betyr logisk og, ! betyr logisk ikke (motsatt) trace("Treff!"); }else{ trace("Bom!"); }Det logiske uttrykket i betingelsen uttrykker da at vi bare treffer hvis
vi siktet godt og hadde ladd våpen og målet ikke var i bevegelse.Eksempel på ELLER:
if( (terningkast==2) || (terningkast==4) || (terningkast==6) ) { trace("Terningen viste et partall!"); }else{ trace("Terningen viste et oddetall!"); }Her uttrykker det logiske uttrykket i betingelsen at et terningkast viser et partall, bare hvis
terningkastet ga 2 eller terningkastet ga 4 eller terningkastet ga 6.Regler for AND (&&) og OR (||) kan beskrives slik: slik:
AND false true false false false true false true
OR false true false false true true true true For at a && b skal være true må både a og b være true!
For at a || b skal være true må enten a eller b (eller både a og b) være true
Eksempel på styring av ball i en animasjon:
if(ball.x>500) { // Hvis ball utenfor området til høyre, stepx=-stepx; // skift bevegelsesretning }if(ball.y<0) { // Hvis ball utenfor toppen av området stepy=-stepy; // skift bevegelsesretning }
Innled et program med tilordningen:
var terningkast:int =Math.floor(Math.random()*6)+1;Deretter lager du kode som skriver ut følgende informasjon:
-Om tallet var et partall
-Om tallet var 6
-Om tallet var delelig med 3
-Om tallet var et av tallene 2,3,4 eller 5
Når
det blir mange if, for eksempel hvis vi skal sjekke om en piltast
er en av fire muligheter,
fortrekker mange å bruke en switch-konstruksjon:
switch (event.keyCode) { // Switch krever i de fleste programmeringsspråk case Keyboard.UP: { // at variabelen som testes er et heltall, men ball.y -= 5; // ActionScript tillater også andre datatyper. break; } case Keyboard.DOWN: { ball.y += 5; break; } case Keyboard.LEFT: { ball.x -= 5; break; } case Keyboard.RIGHT: { ball.x += 5; break; } } //switch } //function
som et alternativ til:
if( event.keyCode==Keyboard.UP) { ball.y-=5; }else if (event.keyCode==Keyboard.DOWN) { ball.y+=5; }else if (event.keyCode==Keyboard.LEFT) { ball.x-=5; }else if (event.keyCode==Keyboard.RIGHT) { ball.x+=5; }else { //ingen av dem... }//if
Hvis vi skal planlegge eller dokumentere logikken i et program, brukes ofte enten Pseudokode eller flytskjemaer:
Kode:
if(tall>10) { trace("Tallet "+tall+" er større enn 10"); } else { trace("Tallet "+tall+" er mindre eller lik 10"); }//if
Som pseudokode:
Hvis tallet er større enn 10 Skriv ut tallet <verdi> er større enn 10 ellers Skriv ut tallet <verdi> er mindre eller lik 10
Som flytskjema: