Urval, operatorer och satser switch-satsen
Urval, operatorer och satser switch-satsen
Urval, operatorer och satser switch-satsen
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