1 Flödeskontroll Sekvens Val Upprepning
2 Logiska operatorer Relationsoperatorer > = <= Likhetsoperatorer == != Logiska operatorer ! && || Observera –prioritetsordningen (s.148) –Symboler: <= får endast skrivas på detta sätt
3 Relationsoperatorer binära och resulterar i heltalet 0 eller 1 Notera : 3 < j < 5 är inte sant om j=7 (logiskt), men i C evalueras 3 < j < 5 som (3 < j) < 5 dvs. (3 < j) är sant och ger resultatet 1, i nästa steg blir uttrycket 1 < 5 vilket också är sant och resultatet blir 1
4 Likhetsoperatorer Binära och resulterar i heltalet 0 eller 1 Viktigt att skilja på = och == syntaktiskt korrekta if (a = 0) if (a == 0) …men (a = 0) är en tilldelning med värdet 0, dvs falskt, medan (a == 0) är en jämförelse som är sann om a har värdet 0.
5 Logiska operatorer ! inte (nästan) && och || eller ! observera : not not s not (not s) s men !!5 !(!5) !(0) 1 två not tar ut varandra Allt ≠ 0 är sant
6 Lat evaluering Uttryck evalueras tills resultatet är känt
7 Sammansatta satsen Omges av { } Ett antal deklarationer och satser Om deklarationer finns med kallas detta ett block Sammansatta satsen får förekomma överallt där en sats får finnas. Är i sig en sats
8 if -satsen Uttrycket ofta logiskt else kan luras Nästade if-satser Dangling-else-problem else knyts alltid till närmast föregående if som saknar else if (uttryck) sats if (uttryck) sats else sats
9 while -satsen Villkorlig upprepning, villkoret testas i förväg Uttrycket evalueras : 0=falskt, allt annat sant Om uttrycket sant utförs satsen, annars nästa sats Sammansatta satsen Uttrycket måste kunna bli falskt! while (uttryck) sats; nästa sats
10 do -satsen Villkoret testas efteråt -> satsen utförs 1 eller flera ggr. (while-saten 0 eller flera ggr.) do sats while (uttryck); nästa sats
11 for -satsen Fast upprepning Uttrycken får utelämnas Om uttryck2 saknas är villkoret sant for (uttryck1; uttryck2; uttryck3) sats nästa sats for (i=1; i<=5; i=i+1) printf(”2*%i=%i ”,2*i,i); printf(”Nu är loopen slut”); i++
12 break & continue ändrar flödet break bryter den ”närmast utanförliggande” loopen eller switch-satsen continue av bryter den pågående iterationen och går vidare till nästa
13 switch -satsen Bättre än nästade if-satser vid ett flertal ”fall” Uttrycket måste vara av en ”integral-type” Värden måste vara unika switch (uttryck) { case värde : satser default : satser } nästa sats Kan utelämnas
14...switch Uttrycket evalueras Värdet sökes sekvensiellt bland case-värdena Om värdet hittas fortsätter exekveringen sekvensiellt därifrån Om värdet inte hittas utförs satserna efter default, om detta ”fall” saknas händer ingenting