85
October 14, 2013 1 Föreläsning 3: Typomvandling, villkor och val, samt textsträngar Camilla Kirkegaard [email protected] Department of Computer and Information Science (IDA) Linköpings universitet Sweden

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

October 14, 2013 1

Föreläsning 3: Typomvandling, villkor och val,

samt textsträngar

Camilla Kirkegaard [email protected]

Department of Computer and Information Science (IDA) Linköpings universitet

Sweden

Page 2: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

October 14, 2013 2

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Innehåll

n  Repetition n  Typomvandlingar n  Booleska operation och jämförelser n  Villkor och val n  Strängar och Java-klassen String

Page 3: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Repetition – Variabler och operationer

October 14, 2013 3

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 4: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Variabler

n  Vad är en variabel? q  Ett namn på en lagringsplats för ett värde – vi "bokar upp"

en plats i datorns minne för att lagra värden på q  Jfr. "x" i matematiken – kan stå för vilket tal som helst

n  En variabel har alltid en typ – vilken sorts sak kan vi

stoppa i lådan? q  Typer är t ex heltal, flyttal och tecken q  Vi måste bestämma oss vad vi vill lagra när vi skapar

variabeln

October 14, 2013 4

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

X namn

Page 5: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Datatyper

n  Översikt över grundläggande datatyper i Java: http://docs.oracle.com/javase/tutorial/java/nutsandbolts/

datatypes.html q  byte q  short q  int q  long

q  float q  double

q  boolean

q  char

October 14, 2013 5

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 6: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Unicode

October 14, 2013 6

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 7: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Skilj på tecken och siffra

class TeckenSiffra {

public static void main (String[] args) { char tecken1 = '0'; char tecken2 = 0; int tal = 0; System.out.print(tecken1 + " " + tecken2 + " " + tal); //Skriver ut: 0 0 }

} n Tecknet 0 (Unicode 48), heltalet 0, nolltecknet ("null" – används för att markera en tom variabel – Unicode 0)

October 14, 2013 7

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 8: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Operationer - Heltal

n  De fyra räknesätten: + - * / n  Resten vid heltalsdivision: % n  Tecken: + -

n  Prioritet: (PEMDAS) q  unära + - q  * / % q  + -

n  Inom en grupp utförs operationerna i den ordning de står n  Använd parenteser för att få en viss bestämd ordning

October 14, 2013 8

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 9: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Typomvandlingar

October 14, 2013 9

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 10: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Datatyper och lagring

n  Det går bara att lagra ett sorts värde i varje variabel n  Värden som vi försöker lagra måste uppfylla villkoren för

den typen q  Storlek q  Format

n  Vi tilldelning kan vi använda ett värde som finns lagrat i en variabel och "kopiera det" till en annan variabel q  int tal1 = 2;

int tal2; tal2 = tal1; //hämta värdet som finns lagrat " " "i variabeln tal1 och lagra " " "samma värde i tal2"

q  Men vad händer om tal1 och tal2 inte har samma typ??

October 14, 2013 10

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 11: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Heltal - Från mindre till större och från större till mindre

n  Vi har fyra heltalstyper: byte, short, int och long q  Ett värde som finns lagrat i en byte kan alltid kopieras till en

short, int eller long - hela talområdet "får plats" q  Men en int kan inte koperas till en short eller byte - även om

själva talet skulle få plats! int tal1 = 2; byte tal2 = tal1; -> kompileringsfel!

n  För att gå från en större typ till en mindre typ måste vi uttryckligen begära en omvandling - type cast q  int tal1 = 2;

byte tal2 = (byte) tal1; "q  Type cast - vi anger vilken typ vi vill "tvinga" värdet från den

andra variabeln att anta genom att ange typen inom parentes

October 14, 2013 11

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 12: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Heltal till flyttal och tvärt om

n  Lika som för heltal kan en double tilldelas en float (från mindre till större typ går bra), men tvärt om måste vi begära en omvandling (type cast)

n  Flyttalstyperna (float och double) kan lagra större värden än heltalstyperna q  Heltal kan tilldelas till en flyttalsvariabel

int tal1 = 1234567890; float tal2 = tal1; "

q  Men vi kan få avrundningsfel! tal2 ovan lagras som 1.2345679E9

n  Tvärt om går inte - vi kan inte direkt tilldela en heltalsvariabel ett flyttalsvärde

n  För att lagra heltalsdelen av ett flyttal måste vi uttryckligen begära en omvandling - type cast q  double tal1 = 2.22;

int tal2 = (int) tal1; Här lagras bara heltalsdelen - tal2 får värdet 2

October 14, 2013 12

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 13: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Tecken och heltal

n  Vi har sett att tecken lagras som ett heltal - dvs som dess Unicode-kod q  Talområdet för en char är därför 0 till 65535 q  char är mindre än int och long!

n  en int eller long kan alltså alltid tilldelas värdet av en char q  short och byte överlappar, men är inte större/mindre

n  för att omvandla mellan char och byte/short krävs att man framtvingar en omvandling - type cast char c1 = 'A'; byte b = (byte) c1; b får värdet 65 (Unicode-värdet som representerar A)

n  Boolean kan aldrig omvandlas till en annan datatyp

October 14, 2013 13

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 14: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Exempel i Eclipse...

October 14, 2013 14

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 15: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Booleska operationer

October 14, 2013 15

Page 16: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Jämförelser

== lika med? != inte lika med? > större än? >= större än eller lika med? < mindre än? <= mindre än eller lika med? Resultatet av en jämförelse blir alltid ett booleskt värde - dvs true eller false"

October 14, 2013 16

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 17: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Exempel

class Jamfora {

public static void main (String[] args) { int tal1 = 2; int tal2 = 3; boolean b1 = tal1 >= tal2; boolean b2 = tal1 == tal2; System.out.println(b1); //sant eller falskt? System.out.println(b2); //sant eller falskt? }

}

October 14, 2013 17

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 18: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Logiska operationer

&& och || eller ! komplement ("icke") n ! har samma prioritet som andra unära operatorer n && har högre prioritet än || n Jämförelseoperatorer har lägre prioritet än aritmetiska operatorer, och logiska operatorer har lägst prioritet

q  boolean b = 1 + 2 <= 2 + 2 || 3 >= 2 samma som: boolean b = ((1 + 2) <= (2 + 2)) || (3 >= 2)

n För att vara på den säkra sidan (och mer lättläst): använd parenteser!

October 14, 2013 18

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 19: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Exempel

class JamforaIgen {

public static void main (String[] args) { int tal1 = 2; int tal2 = 3; boolean b1 = tal1 >= tal2 && tal1 == tal2; boolean b2 = tal1 == tal1 || tal1 >= tal2; System.out.println(b1); //sant eller falskt? System.out.println(b2); //sant eller falskt? }

}

October 14, 2013 19

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 20: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Villkor och val

October 14, 2013 20

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 21: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Algoritmer med förgreningar – ta ut pengar

October 14, 2013 21

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Hämta saldo för kontot

Är saldot större än uttagsbelopp?

Hämta kontonummer

och uttagsbelopp

Minska saldo med uttagsbelopp,

betala ut pengar Neka uttag!

ja! nej!

Page 22: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Om - annars (if - else)

n  Om ... gör ... annars ... gör ... q  Om saldot är större än uttagsbeloppet, godkänn uttaget, annars skriv ut

ett meddelande att uttaget inte är godkänt n  if (villkor) gör; else gör;

class Om {

public static void main (String[] args) { double saldo = 200.0; double uttag = 300.0; if (uttag <= saldo) System.out.println("Uttag ok"); else System.out.println("Uttag är större än saldot"); }

}

October 14, 2013 22

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 23: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Om - annars (if - else)

n  Samma sak:

class Om2 {

public static void main (String[] args) { double saldo = 200.0; double uttag = 300.0; if (uttag <= saldo) System.out.println("Uttag ok"); if (uttag > saldo) System.out.println("Uttag är större än saldot"); }

}

October 14, 2013 23

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 24: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Om - annars (if - else)

class Om3 {

public static void main (String[] args) { double saldo = 200.0; double uttag = 100.0; if (uttag <= saldo) { System.out.println("Uttag ok"); saldo = saldo - uttag; System.out.println("Nytt saldo är: " + saldo); } else { System.out.println("Uttag är inte ok"); System.out.println("Inga pengar dragna från kontot"); } }

}

October 14, 2013 24

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 25: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Om - annars (if - else) - Vi stegar!

class Om3 {

public static void main (String[] args) { double saldo = 200.0; double uttag = 100.0; if (uttag <= saldo) { System.out.println("Uttag ok"); saldo = saldo - uttag; System.out.println("Nytt saldo är: " + saldo); } else { System.out.println("Uttag är inte ok"); System.out.println("Inga pengar dragna från kontot"); } }

}

October 14, 2013 25

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

saldo

double

Page 26: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Om - annars (if - else) - Vi stegar!

class Om3 {

public static void main (String[] args) { double saldo = 200.0; double uttag = 100.0; if (uttag <= saldo) { System.out.println("Uttag ok"); saldo = saldo - uttag; System.out.println("Nytt saldo är: " + saldo); } else { System.out.println("Uttag är inte ok"); System.out.println("Inga pengar dragna från kontot"); } }

}

October 14, 2013 26

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

saldo

double uttag

double

Page 27: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Om - annars (if - else) - Vi stegar!

class Om3 {

public static void main (String[] args) { double saldo = 200.0; double uttag = 100.0; if (uttag <= saldo) { System.out.println("Uttag ok"); saldo = saldo - uttag; System.out.println("Nytt saldo är: " + saldo); } else { System.out.println("Uttag är inte ok"); System.out.println("Inga pengar dragna från kontot"); } }

}

October 14, 2013 27

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

saldo

double uttag

double

Page 28: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Om - annars (if - else) - Vi stegar!

class Om3 {

public static void main (String[] args) { double saldo = 200.0; double uttag = 100.0; if (100.0 <= 200.0) { System.out.println("Uttag ok"); saldo = saldo - uttag; System.out.println("Nytt saldo är: " + saldo); } else { System.out.println("Uttag är inte ok"); System.out.println("Inga pengar dragna från kontot"); } }

}

October 14, 2013 28

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

saldo

double uttag

double

Page 29: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Om - annars (if - else) - Vi stegar!

class Om3 {

public static void main (String[] args) { double saldo = 200.0; double uttag = 100.0; if (true) { System.out.println("Uttag ok"); saldo = saldo - uttag; System.out.println("Nytt saldo är: " + saldo); } else { System.out.println("Uttag är inte ok"); System.out.println("Inga pengar dragna från kontot"); } }

}

October 14, 2013 29

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

saldo

double uttag

double

Page 30: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Om - annars (if - else) - Vi stegar!

class Om3 {

public static void main (String[] args) { double saldo = 200.0; double uttag = 100.0; if (uttag <= saldo) { System.out.println("Uttag ok"); saldo = saldo - uttag; System.out.println("Nytt saldo är: " + saldo); } else { System.out.println("Uttag är inte ok"); System.out.println("Inga pengar dragna från kontot"); } }

}

October 14, 2013 30

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

saldo

double uttag

double

evabl45> Uttag ok

Page 31: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Om - annars (if - else) - Vi stegar!

class Om3 {

public static void main (String[] args) { double saldo = 200.0; double uttag = 100.0; if (uttag <= saldo) { System.out.println("Uttag ok"); saldo = saldo - uttag; System.out.println("Nytt saldo är: " + saldo); } else { System.out.println("Uttag är inte ok"); System.out.println("Inga pengar dragna från kontot"); } }

}

October 14, 2013 31

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

saldo

double uttag

double

evabl45> Uttag ok

Page 32: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Om - annars (if - else) - Vi stegar!

class Om3 {

public static void main (String[] args) { double saldo = 200.0; double uttag = 100.0; if (uttag <= saldo) { System.out.println("Uttag ok"); saldo = 200.0 - 100.0; System.out.println("Nytt saldo är: " + saldo); } else { System.out.println("Uttag är inte ok"); System.out.println("Inga pengar dragna från kontot"); } }

}

October 14, 2013 32

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

saldo

double uttag

double

evabl45> Uttag ok

Page 33: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Om - annars (if - else) - Vi stegar!

class Om3 {

public static void main (String[] args) { double saldo = 200.0; double uttag = 100.0; if (uttag <= saldo) { System.out.println("Uttag ok"); saldo = 100.0; System.out.println("Nytt saldo är: " + saldo); } else { System.out.println("Uttag är inte ok"); System.out.println("Inga pengar dragna från kontot"); } }

}

October 14, 2013 33

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

saldo

double uttag

double

evabl45> Uttag ok

Page 34: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Om - annars (if - else) - Vi stegar!

class Om3 {

public static void main (String[] args) { double saldo = 200.0; double uttag = 100.0; if (uttag <= saldo) { System.out.println("Uttag ok"); saldo = saldo - uttag; System.out.println("Nytt saldo är: " + saldo); } else { System.out.println("Uttag är inte ok"); System.out.println("Inga pengar dragna från kontot"); } }

}

October 14, 2013 34

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

saldo

double uttag

double

evabl45> Uttag ok evabl45> Nytt saldo är: 100.0

Page 35: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Om - annars (if - else) - Vi stegar!

class Om3 {

public static void main (String[] args) { double saldo = 200.0; double uttag = 100.0; if (uttag <= saldo) { System.out.println("Uttag ok"); saldo = saldo - uttag; System.out.println("Nytt saldo är: " + saldo); } else { System.out.println("Uttag är inte ok"); System.out.println("Inga pengar dragna från kontot"); } }

}

October 14, 2013 35

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

saldo

double uttag

double

evabl45> Uttag ok evabl45> Nytt saldo är: 100.0

Page 36: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Om - annars för kontroll av värden class Uttag2 {

public static void main (String[] args) { double saldo = 200.0;

System.out.println("Ange uttagsbelopp: "); double uttag = ... //låt användaren ange värde if (uttag >= 0) { saldo = saldo - uttag; System.out.println("Nytt saldo är: " + saldo); } else System.out.println("Belopp får inte vara negativt!"); }

}

October 14, 2013 36

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 37: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Om - annars - om ...

class Uttag3 {

public static void main (String[] args) { double saldo = 200.0; double uttag = 300.0; if (uttag >= 0 && uttag <= saldo) { saldo = saldo - uttag; System.out.println("Nytt saldo är: " + saldo); } else if (uttag >= 0 && uttag > saldo) System.out.println("Du har inte råd!"); else System.out.println("Belopp får inte vara negativt!"); }

}

37

Page 38: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Om - annars - om ... Vi stegar!

class Uttag3 {

public static void main (String[] args) { double saldo = 200.0; double uttag = 300.0; if (uttag >= 0 && uttag <= saldo) { saldo = saldo - uttag; System.out.println("Nytt saldo är: " + saldo); } else if (uttag >= 0 && uttag > saldo) System.out.println("Du har inte råd!"); else System.out.println("Belopp får inte vara negativt!"); }

}

38

saldo

double

Page 39: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Om - annars - om ... Vi stegar!

class Uttag3 {

public static void main (String[] args) { double saldo = 200.0; double uttag = 300.0; if (uttag >= 0 && uttag <= saldo) { saldo = saldo - uttag; System.out.println("Nytt saldo är: " + saldo); } else if (uttag >= 0 && uttag > saldo) System.out.println("Du har inte råd!"); else System.out.println("Belopp får inte vara negativt!"); }

}

39

saldo

double uttag

double

Page 40: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Om - annars - om ... Vi stegar!

class Uttag3 {

public static void main (String[] args) { double saldo = 200.0; double uttag = 300.0; if (uttag >= 0 && uttag <= saldo) { saldo = saldo - uttag; System.out.println("Nytt saldo är: " + saldo); } else if (uttag >= 0 && uttag > saldo) System.out.println("Du har inte råd!"); else System.out.println("Belopp får inte vara negativt!"); }

}

40

saldo

double uttag

double

Page 41: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Om - annars - om ... Vi stegar!

class Uttag3 {

public static void main (String[] args) { double saldo = 200.0; double uttag = 300.0; if (true && uttag <= saldo) { saldo = saldo - uttag; System.out.println("Nytt saldo är: " + saldo); } else if (uttag >= 0 && uttag > saldo) System.out.println("Du har inte råd!"); else System.out.println("Belopp får inte vara negativt!"); }

}

41

saldo

double uttag

double

Page 42: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Om - annars - om ... Vi stegar!

class Uttag3 {

public static void main (String[] args) { double saldo = 200.0; double uttag = 300.0; if (true && false) { saldo = saldo - uttag; System.out.println("Nytt saldo är: " + saldo); } else if (uttag >= 0 && uttag > saldo) System.out.println("Du har inte råd!"); else System.out.println("Belopp får inte vara negativt!"); }

}

42

saldo

double uttag

double

Page 43: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Om - annars - om ... Vi stegar!

class Uttag3 {

public static void main (String[] args) { double saldo = 200.0; double uttag = 300.0; if (false) { saldo = saldo - uttag; System.out.println("Nytt saldo är: " + saldo); } else if (uttag >= 0 && uttag > saldo) System.out.println("Du har inte råd!"); else System.out.println("Belopp får inte vara negativt!"); }

}

43

saldo

double uttag

double

Page 44: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Om - annars - om ... Vi stegar!

class Uttag3 {

public static void main (String[] args) { double saldo = 200.0; double uttag = 300.0; if (uttag >= 0 && uttag <= saldo) { saldo = saldo - uttag; System.out.println("Nytt saldo är: " + saldo); } else if (uttag >= 0 && uttag > saldo) System.out.println("Du har inte råd!"); else System.out.println("Belopp får inte vara negativt!"); }

}

44

saldo

double uttag

double

Page 45: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Om - annars - om ... Vi stegar!

class Uttag3 {

public static void main (String[] args) { double saldo = 200.0; double uttag = 300.0; if (uttag >= 0 && uttag <= saldo) { saldo = saldo - uttag; System.out.println("Nytt saldo är: " + saldo); } else if (sant && uttag > saldo) System.out.println("Du har inte råd!"); else System.out.println("Belopp får inte vara negativt!"); }

}

45

saldo

double uttag

double

Page 46: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Om - annars - om ... Vi stegar!

class Uttag3 {

public static void main (String[] args) { double saldo = 200.0; double uttag = 300.0; if (uttag >= 0 && uttag <= saldo) { saldo = saldo - uttag; System.out.println("Nytt saldo är: " + saldo); } else if (sant && sant) System.out.println("Du har inte råd!"); else System.out.println("Belopp får inte vara negativt!"); }

}

46

saldo

double uttag

double

Page 47: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Om - annars - om ... Vi stegar!

class Uttag3 {

public static void main (String[] args) { double saldo = 200.0; double uttag = 300.0; if (uttag >= 0 && uttag <= saldo) { saldo = saldo - uttag; System.out.println("Nytt saldo är: " + saldo); } else if (sant) System.out.println("Du har inte råd!"); else System.out.println("Belopp får inte vara negativt!"); }

}

47

saldo

double uttag

double

Page 48: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Om - annars - om ... Vi stegar!

class Uttag3 {

public static void main (String[] args) { double saldo = 200.0; double uttag = 300.0; if (uttag >= 0 && uttag <= saldo) { saldo = saldo - uttag; System.out.println("Nytt saldo är: " + saldo); } else if (uttag >= 0 && uttag > saldo) System.out.println("Du har inte råd!"); else System.out.println("Belopp får inte vara negativt!"); }

}

48

saldo

double uttag

double

evabl45> Du har inte råd!

Page 49: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Om - annars - om ... Vi stegar!

class Uttag3 {

public static void main (String[] args) { double saldo = 200.0; double uttag = 300.0; if (uttag >= 0 && uttag <= saldo) { saldo = saldo - uttag; System.out.println("Nytt saldo är: " + saldo); } else if (uttag >= 0 && uttag > saldo) System.out.println("Du har inte råd!"); else System.out.println("Belopp får inte vara negativt!"); }

}

49

saldo

double uttag

double

evabl45> Du har inte råd!

Page 50: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Om - annars - om ... Vad händer nu?

class Uttag3 {

public static void main (String[] args) { double saldo = 200.0; double uttag = -30.0; if (uttag >= 0 && uttag <= saldo) { saldo = saldo - uttag; System.out.println("Nytt saldo är: " + saldo); } else if (uttag >= 0 && uttag > saldo) System.out.println("Du har inte råd!"); else System.out.println("Belopp får inte vara negativt!"); }

}

50

Page 51: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Val mellan alternativ

class AlternativOm {

public static void main (String[] args) { int siffra = 3; if (siffra == 1) System.out.println("Det är en 1:a"); else if (siffra == 2) System.out.println("Det är en 2:a"); else if (siffra == 3) System.out.println("Det är en 3:a"); else System.out.println("Det är inte 1, 2 eller 3"); }

}

October 14, 2013 51

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 52: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Val mellan alternativ

class AlternativOm {

public static void main (String[] args) { int siffra = 7; if (siffra == 1) System.out.println("Det är en 1:a"); else if (siffra == 2) System.out.println("Det är en 2:a"); else if (siffra == 3) System.out.println("Det är en 3:a"); else System.out.println("Det är inte 1, 2 eller 3"); }

}

October 14, 2013 52

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 53: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Val mellan alternativ - switch class AlternativSwitch {

public static void main (String[] args) { int siffra = 3; switch (siffra) { case 1: System.out.println("Det är en 1:a"); break; case 2: System.out.println("Det är en 2:a"); break; case 3: System.out.println("Det är en 3:a"); break; default: System.out.println("Det är inte 1, 2 eller 3"); break; } }

}

October 14, 2013 53

Page 54: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Textsträngar och Javas standardbibliotek

October 14, 2013 54

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 55: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Textsträngar (String) – ingen grundläggande datatyp

n  String är inte en primitiv datatyp utan en klass i Javas standardbibliotek q  Många klasser i standardbiblioteket är "kombinationer" av

grundläggande datayper q  String kan ses som en sekvens av char

n  Vi kan skapa objekt (instanser) av klassen String n  Vi kan skriva int i = 1;  och String s = "hej"; men

även String s = new String("hej");"q  Skillnaden kommer vi tillbaka till senare i kursen! q  Tecken skrivs inom ' ' medan strängar (text) skrivs inom " " q  Vi kan sätta samman flera teckensträngar med +

n  Klassen String har metoder som vi kan komma åt genom att skriva en . och sedan metodens namn q  s = s.toUpperCase(); q  om metoden kräver indata skrivs det i parentesen

n  För att få reda på vilka metoder som finns för klassen String – kolla i Javadoc för Java API q  http://docs.oracle.com/javase/6/docs/api/java/lang/String.html

October 14, 2013 55

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 56: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Exempel

class Text {

public static void main (String[] args) { String mintext = "Hej!"; String annantext = "Hejsan!"; System.out.println(mintext); System.out.println(mintext + " " + annantext); }

}

October 14, 2013 56

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 57: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Exempel

class Text {

public static void main (String[] args) { String mintext = "Hej!"; String annantext = "Hejsan!"; System.out.println(mintext); System.out.println(mintext + " " + annantext); }

}

October 14, 2013 57

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

mintext

String

"Hej!"

Page 58: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Exempel

class Text {

public static void main (String[] args) { String mintext = "Hej!"; String annantext = "Hejsan!"; System.out.println(mintext); System.out.println(mintext + " " + annantext); }

}

October 14, 2013 58

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

mintext

String

"Hej!"

annantext

String

"Hejsan!"

Page 59: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Exempel

class Text {

public static void main (String[] args) { String mintext = "Hej!"; String annantext = "Hejsan!"; System.out.println(mintext); System.out.println(mintext + " " + annantext); }

}

October 14, 2013 59

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

mintext

String

"Hej!"

annantext

String

"Hejsan!"

evabl45> Hej!

Page 60: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Exempel

class Text {

public static void main (String[] args) { String mintext = "Hej!"; String annantext = "Hejsan!"; System.out.println(mintext); System.out.println(mintext + " " + annantext); }

}

October 14, 2013 60

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

mintext

String

"Hej!"

annantext

String

"Hejsan!"

evabl45> Hej! evabl45> Hej! Hejsan!

Page 61: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Javadoc för Javas standardbibliotek

n  Viktigt verktyg – få personer kan hela språket utantill! q  Använd som "uppslagsbok" så fort ni får känslan "det här

måste väl någon ha gjort en smart metod för" eller när ni står inför frågan "vilken klass/metod är bäst att använda i det här läget?"

n  Paket – grupp av klasser q  Klasserna har ett namn + ett paket = fullständigt namn q  Exempel: String och java.lang.String

n  Några användbara paket q  java.lang – Grundläggande klasser och "wrappers" för

grundläggande datatyper q  java.util – Bland annat listor, mängder, tid mm.

n  OBS! Lista på vilka klasser ni kan komma att behöva finns på kurshemsidan

October 14, 2013 61

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 62: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Javadoc för klassen String

October 14, 2013 62

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 63: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Vi läser Javadoc för String-klassen...

October 14, 2013 63

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 64: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Tips för att läsa Javadoc

64

Page 65: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Exempel

class Textoperationer {

public static void main (String[] args) { String s1 = "text"; String s2 = " MER text"; s1 = s1.toUpperCase(); s2 = s1.concat(s2); System.out.println(s1); System.out.println(s2); }

} Ø  TEXT Ø  TEXT MER text

October 14, 2013 65

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 66: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Hänvisningsoperatorn: .

n  s1 = s1.toUpperCase(); q  Läses ungefär "på värdet som finns i variabeln s1 just nu,

anropa metoden toUpperCase(), lagra sedan det nya värdet som toUpperCase() returnerar i variabeln s1 igen"

q  Det som kommer före . anger vad metoden ska anropas på, dvs vad metoden "hänvisar till"

n  Låt oss stega igenom programmet...

October 14, 2013 66

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 67: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Exempel

class Textoperationer {

public static void main (String[] args) { String s1 = "text"; String s2 = " MER text"; s1 = s1.toUpperCase(); s2 = s1.concat(s2); System.out.println(s1); System.out.println(s2); }

}

October 14, 2013 67

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

s1

String

"text"

Page 68: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Exempel

class Textoperationer {

public static void main (String[] args) { String s1 = "text"; String s2 = " MER text"; s1 = s1.toUpperCase(); s2 = s1.concat(s2); System.out.println(s1); System.out.println(s2); }

}

October 14, 2013 68

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

s2

String

s1

String

"text" "MER text"

Page 69: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Exempel

class Textoperationer {

public static void main (String[] args) { String s1 = "text"; String s2 = " MER text"; s1 = s1.toUpperCase(); s2 = s1.concat(s2); System.out.println(s1); System.out.println(s2); }

}

October 14, 2013 69

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

"anropa metoden toUpperCase() på värdet som finns i variabeln s1, lagra sedan resultatet i s1"

s2

String

s1

String

"text" "MER text"

Page 70: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

toUpperCase() ?

October 14, 2013 70

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 71: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Exempel

class Textoperationer {

public static void main (String[] args) { String s1 = "text"; String s2 = " MER text"; s1 = "text".toUpperCase(); s2 = s1.concat(s2); System.out.println(s1); System.out.println(s2); }

}

October 14, 2013 71

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

s2

String

s1

String

"text" "MER text"

Page 72: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Exempel

class Textoperationer {

public static void main (String[] args) { String s1 = "text"; String s2 = " MER text"; s1 = "TEXT"; s2 = s1.concat(s2); System.out.println(s1); System.out.println(s2); }

}

October 14, 2013 72

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

s2

String

s1

String

"text" "MER text"

Page 73: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Exempel

class Textoperationer {

public static void main (String[] args) { String s1 = "text"; String s2 = " MER text"; s1 = "TEXT"; s2 = s1.concat(s2); System.out.println(s1); System.out.println(s2); }

}

October 14, 2013 73

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

s2

String

s1

String

"TEXT" "MER text"

Page 74: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Exempel

class Textoperationer {

public static void main (String[] args) { String s1 = "text"; String s2 = " MER text"; s1 = s1.toUpperCase(); s2 = s1.concat(s2); System.out.println(s1); System.out.println(s2); }

}

October 14, 2013 74

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

s2

String

s1

String

"TEXT" "MER text"

Page 75: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

concat() ?

October 14, 2013 75

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 76: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Exempel

class Textoperationer {

public static void main (String[] args) { String s1 = "text"; String s2 = " MER text"; s1 = s1.toUpperCase(); s2 = s1.concat(s2); System.out.println(s1); System.out.println(s2); }

}

October 14, 2013 76

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

"lägg till värdet av variabeln s2 i slutet på (=konkatenera) värdet i variabeln s1"

s2

String

s1

String

"TEXT" "MER text"

Page 77: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Exempel

class Textoperationer {

public static void main (String[] args) { String s1 = "text"; String s2 = " MER text"; s1 = s1.toUpperCase(); s2 = "TEXT".concat(" MER text"); System.out.println(s1); System.out.println(s2); }

}

October 14, 2013 77

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

s2

String

s1

String

"TEXT" "MER text"

Page 78: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Exempel

class Textoperationer {

public static void main (String[] args) { String s1 = "text"; String s2 = " MER text"; s1 = s1.toUpperCase(); s2 = "TEXT MER text"; System.out.println(s1); System.out.println(s2); }

}

October 14, 2013 78

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

s2

String

s1

String

"TEXT" "MER text"

Page 79: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Exempel

class Textoperationer {

public static void main (String[] args) { String s1 = "text"; String s2 = " MER text"; s1 = s1.toUpperCase(); s2 = "TEXT MER text"; System.out.println(s1); System.out.println(s2); }

}

October 14, 2013 79

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

s2

String

s1

String

"TEXT" "TEXT MER text"

Page 80: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Exempel

class Textoperationer {

public static void main (String[] args) { String s1 = "text"; String s2 = " MER text"; s1 = s1.toUpperCase(); s2 = s1.concat(s2); System.out.println(s1); System.out.println(s2); }

}

October 14, 2013 80

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

evabl45> TEXT

s2

String

s1

String

"TEXT" "TEXT MER text"

Page 81: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Exempel

class Textoperationer {

public static void main (String[] args) { String s1 = "text"; String s2 = " MER text"; s1 = s1.toUpperCase(); s2 = s1.concat(s2); System.out.println(s1); System.out.println(s2); }

}

October 14, 2013 81

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

evabl45> TEXT evabl45> TEXT MER text

s2

String

s1

String

"TEXT" "TEXT MER text"

Page 82: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Vi testar att stega i Eclipse...

October 14, 2013 82

Page 83: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Sammanfattning

n  Typomvandlingar q  Samma typ men olika storlek? - vi kan alltid gå från mindre till

större typ, men från större till mindre krävs type cast q  type cast - anges genom att ange typen inom parentes vid

tilldelning q  type cast behövs även när vi omvandlar från flyttal till heltal (dvs

"kastar bort decimalerna") samt från char till short eller byte n  Villkor

q  Jämförelseoperatorer: q  Logiska operatorer: ! (icke) - && (och) - || (eller) q  Ger ett booleskt värde som resultat

n  Val q  if (villkor) //gör något; else //gör något annat; q  switch - väljer mellan alternativa heltalsvärden

n  Textsträngar - inte en grundläggande datatyp! q  String är en klass i Javas standardbibliotek q  Slå upp Javadoc för Java API för att läsa om metoderna!

October 14, 2013 83

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 84: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

Nästa gång?

n  Arrayer och loopar

October 14, 2013 84

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden

Page 85: Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013. 10. 14. · tal2 ovan lagras som 1.2345679E9 ! Tvärt om går inte - vi kan inte

October 14, 2013 85

Department of Computer and Information Science (IDA) Linköpings universitet, Sweden