Övning2 programmeringsteknik och Matlab 2D1312/ 2D1305 Kompilering, exekvering, variabler, styrstrukturer 1 En körbar java-kod class ProgEtt{ public static void main(String[] args){ System.out.println(”java är enkel”); } } 2 Kompileringsfel Följande program ger följande kompileringsfel class ProgEtt{ public static void main(String[] args){ String mening=”java är enkel”; System.out.println(mining); } } ProgEtt.java:4: cannot find symbol symbol : variable mining location: class ProgEtt System.out.println(mining); ^ 1 error 3 Variabel, datatyp och litteral • Variabel är en identifierare i ett program som representerar en plats i datorns minne. • I Java finns det flera olika datatyper. T.ex: ”2” , ’2’ , 2, 3.14 • Litteral är ett angivet värde i ett program. 4 Datatyper Primitiva datatyper Klasser byte short int long double float char boolean … String Scanner System Integer Double Boolean … 5 Utskrift satser • System.out.print( ) – En sats som skriver ut parameternsvärde. • System.out.println( ) – En sats som skriver ut parameternsvärde och byter automatiskt rad efteråt 6 Reserverade ord • Följande ord är reserverad och får (ska) inte användas som identifierare. abstract boolean break byte (byvalue) case (cast) catch char class (const) continue default (goto) do if double implements else import extends (inner) false instanceof final int finally interface float long for native (future) new (generic) null (operator) (outer) package private protected public (rest) return short static super switch synchronized this throw throws transient true try (var) void volatile while 7 Inläsning från tangentbord import java.util.Scanner; class FintNamn{ public static void main(String[] args){ Scanner tgb = new Scanner(System.in); System.out.print(”Vad heter du? ”); String namnet = tgb.nextLine(); System.out.println(namnet +” är ett fint namn”); } } 8 Operatorer Op Exempel + * / ++ -% == != Op Exempel x+y += y-x -= x*y ! x/y *= x++ eller ++x /= y-- eller --y > x%y < x==y >= x!=y <= x+=2, x+=y x-=3, x-=y !isEmpty x*=2, x*=y x/=2, x/=y x>y, x>10 x<y, x<5 x>=y, x>=4 x<=y, x<=4 9 Styrstrukturer • Java kod exekveras radvis och sekventiell. • Med hjälp av styrstrukturer kan man ändra den sekventiella exekveringen. • Några exempel på styrstrukturer är: – if, if-else, for, while, do-while 10 if-sats Problem: Skriv ett program som frågar efter pris på en bok och skriver ut ”dyr bok, ingen affär” om priset är mer än 500:- 11 modell Kolla om bokPris>500 falskt sant Skriv ut ”dyr bok, ingen affär” Kod efter if-satsen ... 12 if-else else använder man tillsammans med en if-sats när man vill göra ett val mellan två olika saker. Exempel: Skriv ett program som frågar efter pris på en bok och skriver ut ”dyr, ingen affär om priset är mer än 500 kr annars skriver programmet ut ”billig bok, köp fort” 13 modell falskt bokPris>500 sant System.out.println(”billig…”); System.out.println(”dyr…”); Kod efter if-else... 14 Slinga (loop) • Slingor eller loop används då man vill en sak ska upprepas ett antal gånger. • I java finns det for-slingor och whileslingor för detta ändamål 15 For-sats for-sats består av följande delar 1.for 2.(A;B;C) A är oftast deklaraton och initiering av veriabel B är ett villkor-sats (Condition) C oftast är en stegning-sats 3. uttryck (statement) for ( int i=0 ; i< 10; i++) { System.out.println(”Java är enkel”); } 16 while sats while-sats består av följande delar: 1. while 2. Villkor-sats (condition) 3. uttryck (statement) int i=0; while (i<10) { System.out.println(”programmering är kul”); i++; } 17 Modell för for- och while-sats ... kod före for eller while falskt Villkor sant uttryck Kod efter for eller while... 18 Modell l för loop int i=0; i<10 falskt sant System.out.println(”hej”); i++; Kod efter for eller while... 19 do-while sats while-sats består av följande delar: 1. do 2. uttryck 3.while 4.Villkor-sats (condition) int i=0; do { System.out.println(”programmering är kul”); i--; } while (i>10); 20 Modell för do-while sats ... kod för do-while uttryck falskt Villkor sant kod efter do-while ... 21 Uppgifter Skriv följande program med hjälp av for-sats och/eller while-sats 1. Skriv ett program som skriver ut ”hej” 100 gånger. 2. Skriv ett program som skriver ut alla heltal från 0 upp till 100. 3. Skriv ett program som skriver ut heltal mellan -1 och 101 med intervall 4. (d.v.s. 0, 4, 8, 12,…,100) 22 Uppgifter 4. Skriv ett program som frågar användaren om ett tal och skriver ut ”hej” lika många gånger som inmatade talet. 5. Skriv ett program som frågar om två tal och skriver ut alla tal mellan de två talen (obs användaren ska mata in minsta talet först) 6. Skriv ett program som löser uppgift 5 utan någon krav om att minsta talet ska matas in först. 23 Uppgifter 7. Skriv ett program som skriver ut multiplikationstabellen för 1-5. 1 2 3 4 5 2 4 6 8 10 3 6 9 12 15 4 8 12 16 20 5 10 15 20 25 24