Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013....
Transcript of Föreläsning 3: Typomvandling, villkor och val, samt textsträngar725G61/lectures/Fo3.pdf · 2013....
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
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
Repetition – Variabler och operationer
October 14, 2013 3
Department of Computer and Information Science (IDA) Linköpings universitet, Sweden
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
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
Unicode
October 14, 2013 6
Department of Computer and Information Science (IDA) Linköpings universitet, Sweden
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
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
Typomvandlingar
October 14, 2013 9
Department of Computer and Information Science (IDA) Linköpings universitet, Sweden
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
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
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
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
Exempel i Eclipse...
October 14, 2013 14
Department of Computer and Information Science (IDA) Linköpings universitet, Sweden
Booleska operationer
October 14, 2013 15
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
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
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
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
Villkor och val
October 14, 2013 20
Department of Computer and Information Science (IDA) Linköpings universitet, Sweden
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!
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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!
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!
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
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
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
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
Textsträngar och Javas standardbibliotek
October 14, 2013 54
Department of Computer and Information Science (IDA) Linköpings universitet, Sweden
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
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
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!"
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!"
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!
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!
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
Javadoc för klassen String
October 14, 2013 62
Department of Computer and Information Science (IDA) Linköpings universitet, Sweden
Vi läser Javadoc för String-klassen...
October 14, 2013 63
Department of Computer and Information Science (IDA) Linköpings universitet, Sweden
Tips för att läsa Javadoc
64
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
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
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"
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"
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"
toUpperCase() ?
October 14, 2013 70
Department of Computer and Information Science (IDA) Linköpings universitet, Sweden
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"
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"
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"
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"
concat() ?
October 14, 2013 75
Department of Computer and Information Science (IDA) Linköpings universitet, Sweden
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"
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"
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"
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"
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"
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"
Vi testar att stega i Eclipse...
October 14, 2013 82
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
Nästa gång?
n Arrayer och loopar
October 14, 2013 84
Department of Computer and Information Science (IDA) Linköpings universitet, Sweden
October 14, 2013 85
Department of Computer and Information Science (IDA) Linköpings universitet, Sweden