Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Repetitionssatser: do-satsen och for-satsen -Operatorer: tilldelning, uppräknings- och nedräkningsoperatorer
2Jonny Karlsson Repetitionssatser Do-satsendosats;while(uttryck); do-satsen är likadan som while-satsen med den skillnaden att utrycket testas först efter utförd sats. I while-satsen testas uttrycket före utförd sats. do{ scanf(”%d”, &i); gör någåt med i; } while(i < 0);
3Jonny Karlsson Operatorer TILLDELNING = Tilldelningsoperator Det som finns till höger om tilldelningsoperatorn utvärderas, och resultatet lagras i den variabel som finns till vänster om tilldelningsoperatorn. Exempel: a = a + b;//resultatet av a + b lagras i variabeln a Tilldelningssatsen ovan kan förenklas på följande sätt: a += b;//ger samma resultat som a = a + b Samma förenkling kan göras med samtliga aritmetiska operatorer: a -= b;//ger samma resultat som a = a - b a *= b;//ger samma resultat som a = a * b a /= b;//ger samma resultat som a = a / b
4Jonny Karlsson Operatorer UPP- OCH NEDRÄKNINGSOPERATORER ++ Uppräkningsoperator -- Nedräkningsoperator En uppräknings- eller en nedräkningsoperator placeras antingen före eller efter en operator/uttryck. ++heltal Prefix heltal++ Postfix Nedräkningsoperatorn minskar en variabels värde med 1 och uppräkningsoperatorn ökar en variabels värde med 1
5Jonny Karlsson Operatorer UPP- OCH NEDRÄKNINGSOPERATORER int helatal = 0; heltal = helatal - 1;//heltal har nu värdet -1 --heltal;//heltal har nu värdet -2 heltal = heltal + 1;//heltal har nu värdet -1 heltal++;//heltal har nu värdet 0
6Jonny Karlsson Operatorer UPP- OCH NEDRÄKNINGSOPERATORER Det har betydelse om man använder prefix (operatorn före variabeln) eller postfix (operatorn efter variabeln). Följande satser ger olika resultat: (låt oss anta att heltal har värdet 1) //sats1: a = heltal++;//a får värdet 1 och heltal får värdet 2. (a tilldelas värdet i heltal och //först sen inkrementeras heltal med 1 //sats2: a = ++heltal;//a får värdet 2 och heltal får värdet 2. (heltal inkrementeras först //med 1 och sedan tilldelas variabeln a värdet i variabeln heltal
7Jonny Karlsson Repetitionssatser FOR-SATSEN Är mycket användbar! Har följande allmänna form: for(uttyck1; utryck2; utryck3) sats; Satsen ovan är ekvivalent med följande while-sats: utryck1:while(uttryck2){sats;uttryck3;}
8Jonny Karlsson Repetitionssatser FOR-SATSEN for(uttyck1; utryck2; utryck3) sats; uttryck1 =Utförs allra först och endast en gång. Är ofta en initialisering av en variabel. uttryck2=Jämförelseuttryck t.ex. (a < b). Om detta uttryck är sant utförs sats. Om detta uttryck är falskt hoppar programmet bort från for-satsen uttryck3=Utförs alltid efter sats. Är vanligen en inkrementering av den variabel som initialiserats i uttryck1
9Jonny Karlsson Repetitionssatser FOR-SATSEN Exempel: programmet läser in 10 värden från tangentbordet och sparar dessa i en tabell int tabell = new int[10]; int index; for(index = 0; index < 10; index++) tabell[index] = input.readInt();