01.09.2013 Views

Urval, operatorer och satser switch-satsen

Urval, operatorer och satser switch-satsen

Urval, operatorer och satser switch-satsen

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Grundläggande programmeringsteknik<br />

Grundläggande programmeringsteknik<br />

<strong>Urval</strong>, <strong>operatorer</strong> <strong>och</strong> <strong>satser</strong><br />

#include <br />

int main(void){<br />

int a;<br />

srand(time(0));<br />

a=rand()%6+1;<br />

Kapitel 5<br />

Exempel 5.2<br />

<strong>switch</strong> (a){<br />

case 1: printf("Hej Du glade\n"); break;<br />

case 2: printf("God dag\n"); break;<br />

case 3: printf("Är Du här igen! \n"); break;<br />

case 4: printf("Har inte Du slutat\n"); break;<br />

case 5: printf("Kul att Du kunde komma\n"); break;<br />

case 6: printf("En sista gång hoppas jag\n");<br />

}<br />

return 0;<br />

}<br />

HT2007<br />

HT2007 marie@cs.umu.se K5-3<br />

Grundläggande programmeringsteknik<br />

Grundläggande programmeringsteknik<br />

#include <br />

Exempel 5.1<br />

int main(void){<br />

int a;<br />

srand(time(0));<br />

a=rand()%6+1;<br />

if(a==1)<br />

printf("Hej Du glade\n");<br />

else if(a==2)<br />

printf("God dag\n");<br />

else if(a==3)<br />

printf("Är Du här igen!\n");<br />

else if(a==4)<br />

printf("Har inte Du slutat\n");<br />

else if(a==5)<br />

printf("Kul att Du kunde komma\n");<br />

else<br />

printf("En sista gång hoppas jag\n");<br />

return 0;<br />

}<br />

HT2007 marie@cs.umu.se K5-2<br />

<strong>switch</strong>-<strong>satsen</strong><br />

<strong>switch</strong> (villkor){<br />

case konstantuttryck: sats<br />

case konstantuttryck: sats<br />

case konstantuttryck: sats<br />

case …<br />

[default sats]<br />

• Villkoret måste vara av en uppräkningsbar<br />

typ (int eller char)<br />

• ”fallen” måste vara unika<br />

• Villkoret anger bara var exekveringen börjar!<br />

Se exempel 5.3<br />

HT2007 marie@cs.umu.se K5-4


Grundläggande programmeringsteknik<br />

Grundläggande programmeringsteknik<br />

… <strong>switch</strong>-<strong>satsen</strong><br />

• Måste vara en konstant efter case<br />

• Om inget alternativ stämmer utförs default<br />

annars lämnas <strong>satsen</strong>.<br />

• Kan inte vara intervall<br />

• Om bara ett av ”fallen” ska utföras måste<br />

break-<strong>satsen</strong> användas!<br />

• Flera <strong>satser</strong> efter case kräver inget block {}<br />

HT2007 marie@cs.umu.se K5-5<br />

• Implicit<br />

Typkonvertering<br />

– I uttryck<br />

– Vid tilldelningar<br />

• Explicit med operator (type)<br />

(int) (float) …<br />

– Unär operator (dvs. mycket hög prioritet)<br />

• Se exempel 5.10 (s.140)<br />

HT2007 marie@cs.umu.se K5-7<br />

Grundläggande programmeringsteknik<br />

Grundläggande programmeringsteknik<br />

Speciella <strong>operatorer</strong><br />

i++ ! i=i+1<br />

++i ! i=i+1<br />

i-- ! i=i-1<br />

--i ! i=i-1<br />

• Alla utryck har ett värde<br />

– OBS! Sidoeffekterna<br />

k+=2 ! k=k+2<br />

k-=3 ! k=k-3<br />

k*=4 ! k=k*4<br />

k/=5 ! k=k/5<br />

HT2007 marie@cs.umu.se K5-6<br />

Kommentarer<br />

• Del av dokumentationen!<br />

• Två varianter<br />

// Räcker raden ut<br />

/* Så här kan kommentarer göras<br />

långa, över flera rader */<br />

• Kommentera med omsorg<br />

• Utnyttja identifierarna som komplement<br />

HT2007 marie@cs.umu.se K5-8


Grundläggande programmeringsteknik<br />

Grundläggande programmeringsteknik<br />

Konstanter<br />

• Bra för att ha namngivna värden<br />

• Lätt att ändra<br />

• Skrivs oftast med versaler<br />

• Konstanter<br />

const int MAX_ANTAL=25;<br />

• Symboliska konstanter<br />

– Hanteras av preprocessorn<br />

#define MAX_ANTAL 25<br />

HT2007 marie@cs.umu.se K5-9<br />

Kontroversiella <strong>satser</strong><br />

• Uthopp ur block: break<br />

– I for, while, do eller <strong>switch</strong><br />

– Skippar resten<br />

• Ovillkorliga hopp: continue<br />

– I en repetitionssats: for, while eller do<br />

– Skippar resten av blocket <strong>och</strong> fortsätter som<br />

vanligt<br />

• Ovillkorliga hopp: goto<br />

– Måste ske till namngivna lägen<br />

HT2007 marie@cs.umu.se K5-11<br />

Grundläggande programmeringsteknik<br />

Grundläggande programmeringsteknik<br />

• if-else<br />

• <strong>switch</strong><br />

• while<br />

• do-while<br />

• for<br />

• return<br />

• break<br />

Satser<br />

• continue<br />

• goto<br />

HT2007 marie@cs.umu.se K5-10<br />

• auto<br />

• double<br />

• int<br />

• struct<br />

• break<br />

• else<br />

• long<br />

• <strong>switch</strong><br />

• case<br />

• enum<br />

• register<br />

Reserverade ord<br />

• typedef<br />

• char<br />

• extern<br />

• return<br />

• union<br />

• const<br />

• float<br />

• short<br />

• unsigned<br />

• continue<br />

• for<br />

• signed<br />

• void<br />

• default<br />

• goto<br />

• sizeof<br />

• volatile<br />

• do<br />

• if<br />

• static<br />

• while<br />

HT2007 marie@cs.umu.se K5-12

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!