170 likes | 351 Views
INTRODUKTION TILL PROGRAMMERING. Föreläsning 3 (20.11.2007) INNEHÅLL: Jämförelseoperatorer Villkorssatser Logiska operatorer och logiska uttryck Repetitionssatser: while-satsen. Jämförelseoperatorer. Relationsoperatorer: == ”lika med” != ”inte lika med” < ”mindre än” > ”större än”
E N D
INTRODUKTION TILL PROGRAMMERING Föreläsning 3 (20.11.2007) INNEHÅLL: Jämförelseoperatorer Villkorssatser Logiska operatorer och logiska uttryck Repetitionssatser: while-satsen Jonny Karlsson 20.11.2007
Jämförelseoperatorer Relationsoperatorer: == ”lika med” != ”inte lika med” < ”mindre än” > ”större än” <= ”mindre än eller lika med” >= ”större än eller lika med Används för att jämföra olika värden såsom variabelvärden. Exempel: x < y Uttrycket ovan är ett exempel på ett uttryck. Om x är mindre än y blir uttrycket sant/true Om x är större eller lika med y blir uttrycket falskt/false Jonny Karlsson 20.11.2007
Villkorssatser Används i program som skall kunna ta alternativa vägar beroende på olika händelser under programmets exekvering. T.ex. ett program med en meny skall kunna utföra olika operationer beroende av vad användaren valt ur menyn. T.ex. 1 = Beräkna addition, 2 = avsluta programmet. Jonny Karlsson 20.11.2007
Villkorssatser if-satsen Det vanligaste sättet att åstadkoma alternativa vägar i ett program är att använda if- satsen. Den enklaste varianten av if-satsen har följande form: if(uttryck) sats; Om uttrycket är ”sant” utförs satsen. Om uttrycket är falskt utförs satsen inte. Jonny Karlsson 20.11.2007
Villkorssatser if-satsen Exempel: if(tal > 2) System.out.println(”Värdet i variabeln tal är större än 2”); Om värdet i variabeln tal är större än 2 blir uttrycket sant och ”Värdet i variabeln tal är större än 2” skrivs ut på bildskärmen Om värdet i variabeln tal är mindre än eller lika med 2 utförs ingenting. double tal1 = 224.454; double tal2 = 224.454; if(tal1 <= tal2) System.out.println(”Uttrycket blev sant!”); Uttrycket blir sant eftersom tal1 och tal2 har samma värde och uttrycket lyder ”Om tal1 är mindre än eller lika med tal2” Jonny Karlsson 20.11.2007
Villkorssatser if-satsen Det finns ofta flervalssituationer där flera instruktioner eller programsatser behöver utföras vid ett speciellt tillstånd. I en if-sats kan multipla satser vid ett sant tillstånd utföras genom att använda bågparenrteser. En öppen bågparentes berättar var blocket börjar och en sluten bågparentes berättar var blocket slutar. if(uttryck) { sats1; sats2; sats3; } Om uttrycket i ovanstående if-sats blir true utförs sats1, sats2 och sats3. Om uttrycket blir false utförs ingenting. Jonny Karlsson 20.11.2007
Villkorssatser if-satsen Exempel: if(tal2 != 0) { kvot = tal1 / tal2; System.out.println(”kvoten av tal1 och tal2 är ” + kvot); } Om uttrycket ovan är sant, dvs om tal2 inte är lika med 0 beräknas kvoten av tal1 och tal2 och svaret visas på bildskärmen. Jonny Karlsson 20.11.2007
Villkorssatser if-satsen En annan version av if-satsen har följande form: if(uttryck) sats1; else sats2; Om uttrycket ovan blir sant utförs sats1, om uttrycket blir falskt utförs sats2. Jonny Karlsson 20.11.2007
Villkorssatser if-satsen Exempel: if(a > b) skillnad = a – b; else skillnad = b – a; System.out.println(”Skillnaden mellan a och b är ” + skillnad); Om variabeln a är större än variabeln b i exemplet ovan beräknas a-b och svaret lagras i variabeln skillnad. I annat fall (dvs. om a är lika med b eller om b är större än a) beräknas b-a och svaret lagras i variabeln skillnad. Till slut skrivs skillnaden mellan a och b på bildskärmen. Jonny Karlsson 20.11.2007
Villkorssatser if-satsen I program uppstår ofta flervalssituationer. I sådana fall används följande form av if-satsen if(uttryck1) { satser; ... } else if(uttryck2) { satser; ... } else { satser; ... } Jonny Karlsson 20.11.2007
Villkorssatser if-satsen Ett exempel på ett program med flervalssituationer hittas under ”agenda och material” på kursen hemsida. (Exemplet sätts ut efter föreläsningen) Jonny Karlsson 20.11.2007
Villkorssatser switch-satsen I Vissa slag av flervalssituationer är det naturligare att använda en switch-sats i stället för if-satser i den form som beskrevs på föregående sida. switch(heltal) { case 1: //om heltal är lika med 1 satser; //utförs satser break; //case 1 slut (motsvarar } i if-satsen) case 2: //om heltal är lika med 2 satser; //utförs satser break; //case 2 slut (motsvarar } i if-satsen) default: //i alla andra fall (motsvarar else i if-satsen) satser; //utförs satser break; //default slut } Jonny Karlsson 20.11.2007
Villkorssatser switch-satsen Exempel på användning av switch-satsen hittas i exempel3 under ”agenda och material” på kursens hemsida. (Exemplet sätts ut efter föreläsningen) Jonny Karlsson 20.11.2007
Logiska operatorer och logiska uttryck Logiska operatorer i Java && ”och” || ”eller” ! ”icke” Logiska opetorer utnyttjas bl.a. i villkorssatser för att kunna ställa flera olika ”krav”. Ett uttryck som innehåller logiska operatorer kallas för logiska uttryck. if(i < 1 || i > 20) //logiskt uttryck { //uttrycket blir ”true” om variabeln i är mindre än 1 ELLER större än 20 } if(i > 0 && i <= 20) //logiskt uttryck { //uttrycket blir ”true” om i är större än 0 OCH om i är mindre än eller lika med 20 } Jonny Karlsson 20.11.2007
Repetitionssatser Används för att åstadkomma repetitioner, dvs. om man vill att samma sats/satser skall utföras ett visst antal gånger. T.ex. I ett program där användaren skall skriva in 10 olika värden från tangentbordet behövs en sats som skall repeteras 10 gånger: Pseudokod: antal = 0; Så länge som antal < 10 { läs in ett heltal från tangentbordet; öka antal med 1; } Jonny Karlsson 20.11.2007
Repetitionssatser While-satsen Ett sätt att åstadkomma repetition är att använda while-satsen. Har den allmänna formen: while(uttryck) sats; //sats repeteras så länge som uttryck är sant eller while(uttryck) { sats1; //sats1 och sats2; //sats2 repeteras så länge som uttryck är sant ... } Jonny Karlsson 20.11.2007
Repetitionssatser Exempel - programmet skriver ut värdet av variabeln i 10 ggr och efter varje utskrift ökas värdet på i med 1: int i = 0; while(i < 10) { System.out.println(i); i = i + 1; } Jonny Karlsson 20.11.2007