Presentation laddar. Vänta.

Presentation laddar. Vänta.

Kommentarer Kommentarer påverkar inte programmet. Hello World! /*

Liknande presentationer


En presentation över ämnet: "Kommentarer Kommentarer påverkar inte programmet. Hello World! /*"— Presentationens avskrift:

1 Kommentarer Kommentarer påverkar inte programmet. Hello World! /*
BLOCKKOMMENTAR Programmet Skriver ut "Hello World!" på skärmen. Alla Java-program bygger på en liknande struktur. */ public class HelloWorld{ public static void main(String[] args){ //RADKOMMENTARER System.out.print("Hello World!");//Hello World! Skrivs ut på skärmen. } Beskriv att kod mellan /* och */ hoppas över av datorn Beskriv att allt efter två snedstreck // ignoreraras och datorn fortsätter på nästa rad. Hello World! Magnus Wärja

2 Skillnaden mellan print och println
Metoden print ställer sig ej på en ny rad efter att en textsträng skrivits ut. public class HelloWorld{ public static void main(String[] args){ System.out.print("Hello World!"); } Metoden println ställer sig på en ny rad efter att en textsträng skrivits ut. System.out.println("Hello World!"); Hello World!Hello World!Hello World! Hello World! Magnus Wärja

3 Konkatenering (+) Plustecknet (+) används för att konkatenera samman textsträngar. public class Konkatenering{ public static void main(String[] args){ //Två textsträngar kan konkateneras samman till en lång sträng System.out.println("Låt oss presentera några heliga " + "årtal för alla gaisare."); // En textsträng kan innehålla siffror System.out.println("Svenska cupmästare: 1942"); // Numeriska värden kan konkateneras till text System.out.println("Serievinnare och svenska " + "mästare: " " och " ); } Låt oss presentera några heliga årtal för alla gaisare: Svenska cupmästare: 1942 Serievinnare och svenska mästare: 1931 och 1954 Magnus Wärja

4 Undantagstecken Kompelatorn vet ej hur ovanstående uttryck skall tolkas! System.out.println("Jag ropade "BINGO" hörde du inte det?"); System.out.println("Jag ropade \"BINGO\" hörde du inte det?"); Compile-time error Korrekt Magnus Wärja

5 Undantagstecken Undantagstecken \b \t \n \r \" \' \\ Betydelse
Backsteg Tabb Ny rad Vagnsretur Dubbelt citattecken Enkelt citattecken Bakvänt snedsträck Magnus Wärja

6 Undantagstecken Roses are red, Violets are blue, Sugar is sweet,
public class Undantagstecken{ public static void main(String[] args){ System.out.println("Roses are red,\n\tViolets are blue,\n" + "Sugar is sweet,\n\tBut I have \"commitment issues\",\n\t" + "So I'd rather just be friends\n\tat this point in our " + "relationship."); } Roses are red, Violets are blue, Sugar is sweet, But I have "commitment issues", So I'd rather just be friends at this point in our relationship. Magnus Wärja

7 Variabler En variabel är ett namn kan ses som en plats, ett ”fack”, i datorns minne. En variabel måste deklareras genom specificering av variabelns namn och datatyp (vilken typ av information variabeln skall hålla i). Flera variabler kan deklareras samtidigt: int räknare, talEtt, talTva; //inte bra (svårläst) En varabel kan redan vid deklaration ges ett värde: int sum = 0; //Korrekt int bas = 32, max = 149; //inte bra (svårläst) int totalt; data typ variabelnamn Magnus Wärja

8 Variabeltilldelning En triangel har 3 sidor. En kvadrat har 4 sidor.
public class Geometri{ public static void main (String[] args){ int sidor = 3; //Deklarering med initiering System.out.println ("En triangel har " + sidor + " sidor."); sidor = 4; //Variabeln tilldelas ett nytt värde System.out.println ("En kvadrat har " + sidor + " sidor."); } En triangel har 3 sidor. En kvadrat har 4 sidor. Magnus Wärja

9 Variabler (Konstanter)
En konstant skiljer sig från variabler genom att deras värde aldrig går att ändra. I Java används uttrycket final vid deklaration av en konstant. För att lätt känna igen en konstant i koden brukar de skrivas i versaler. final double MOMS = 1.25; _ _ _ public class beräknaPris{ public static void main(String[] args){ double summa; summa = MOMS * 100; System.out.print("Summan är: " + summa); } Summan är : 125.0 Magnus Wärja

10 Datatyper (Javas datatyper)
Det finns åtta olika primitiva datatyper i Java. Fyra av dem representerar olika typer av heltal: byte, short, int, long Två av dem representerar flyttal: float, double En datatyp representerar bokstäver: char En datatyp representerar booleanska värden (sant/falskt): boolean Magnus Wärja

11 Variabler (Numeriska variabler)
De olika numeriska datatyperna kräver olika mycket plats i datorns minne. Typ byte short int long float double Utrymme 8 bits 16 bits 32 bits 64 bits Min värde -128 -32,768 < -9 x 1018 +/- 3,4 x med 7 signifikanta siffror +/- 1,7 x med 15 signifikanta siffror Max värde 127 32,767 > 9 x 1018 Magnus Wärja

12 Variabler (char, boolean)
För att lagra enskilda skrivbara tecken använder man den primitiva datatypen char. char teckenEtt; teckenEtt = 'A'; En variabel deklarerad som boolean kan antingen representera värdet ”false” eller värdet ”true”. Oftast deklareras en boolsk variabel vid tillfällen då variabeln kan skifta mellan två tillstånd t ex strömbrytare av / strömbrytare på. public class Char_boolean{ public static void main(String[ ] args){ char teckenEtt = 'A';; boolean strömbrytarePå = true; System.out.println(teckenEtt); System.out.println(strömbrytarePå); } A true Magnus Wärja

13 Beräkningar (operatorer)
Nedanstående tecken är vanliga operatorer för att utföra numeriska beräkningar. Addition + Subtraktion - Multiplikation * Division / (Restvärde %) Magnus Wärja

14 Beräkningar a + b + c + d + e a + b * c - d / e 1 2 3 4 3 1 4 2
Prioriteringen mellan operatorerna följer vanliga regler inom matematiken, Exempelvis: * 3, tolkas som 1 + (2 * 3) och ger resultatet 7 a + b + c + d + e a + b * c - d / e 1 2 3 4 3 1 4 2 a / (b + c) - d % e 2 1 4 3 a / (b * (c + (d - e))) 4 3 2 1 Magnus Wärja

15 Beräkningar public class Beräkningar{ public static void main(String[] args){ System.out.println("5 + 5 = " ); //Använd paranteser vid beräkning!!! System.out.println("8 - 2 = " + (8 - 2)); System.out.println("4 * 5 = " + (4 * 5)); System.out.println("25 / 5 = " + (25 / 5)); System.out.println("(7 + 3) * 4 = " + ((7 + 3) * 4)); } 5 + 5 = 55 8 - 2 = 6 4 * 5 = 20 25 / 5 = 5 (7 + 3) * 4 = 40 Magnus Wärja

16 Operatorer för att öka och minska
Uttrycket: tal++; är samma som: tal = tal + 1; Uttryck tal++ ++tal tal-- --tal Operation adderar 1 subtraherar 1 Uttryckets värde gamla värdet nya värdet Magnus Wärja

17 Operatorer för att öka och minska
public class ÖkaMinska{ public static void main (String[] args){ int a = 5; int b = 5; int c = 10; System.out.println(a++); //5 System.out.println(++b); //6 System.out.println(a); //6 System.out.println(b); //6 System.out.println(c c); //10+12 } Sista raden i varje beräkningssats har finns där för att visa hur man gör en tom rad vid utskriften av resultatet. 5 6 22 Magnus Wärja

18 Tilldelningsoperatorer
+= -= *= /= %= Exempel x += y x -= y x *= y x /= y x %= y Motsvarar x = x + y x = x - y x = x * y x = x / y x = x % y Exempel: int summa = 100; int vara = 50; summa = summa + vara; // summa = 150 är samma som: summa += vara; // summa = 150 Magnus Wärja

19 Konvertera data Från Till
Ibland kan det vara nödvändigt att konvertera ett värde av en viss datatyp till en annan. Nedanstående konvertering fungerar i alla situationer. Från byte short char int long float Till short, int, long, float eller double int, long, float eller double long, float eller double float eller double double Magnus Wärja

20 Konvertera data (casting)
public class Konvertera{ public static void main(String[] args){ int antalGrupper = 6; int summaStudenter = 100; double studPerGrupp; studPerGrupp = (double) summaStudenter / antalGrupper; System.out.println("Stud. per grupp: " + studPerGrupp); System.out.println("Stud. per grupp: " + (int)studPerGrupp); } Stud. per grupp: Stud. per grupp: 16 Magnus Wärja

21 Klassen Scanner För att läsa in värden från terminalfönstret används en klass vid namn Scanner. Denna klass ligger i ett paket (util) och måste därför importeras. import java.util.Scanner; Du måste även deklarera referensvariabeln scan. Scanner scan = new Scanner (System.in); Kommunikationen med terminalföstret sker med hjälp av metoder. message = scan.nextLine(); Mer om metoder, klasser och paket diskuteras senare på denna delkurs. Magnus Wärja

22 Några av Klassen Scanners metoder
Returnerar Namn double nextDouble() Läser in tecknen som en double. int nextInt () Läser in tecknen som en int. String nextLine() Läser in textsträngar Magnus Wärja

23 Klassen Scanner (exempel)
import java.util.Scanner; public class Scannerdemo{ public static void main(String[] args){ Scanner scan = new Scanner (System.in); final int aktuelltÅr = 2008; int födelseår; int ålder; System.out.print("Vilket år är du född? ”); födelseår = scan.nextInt(); //1985 ålder = aktuelltÅr - födelseår; System.out.println("Du är " + ålder + " år gammal."); } Vilket år är du född? 1985 Du är 22 år gammal. Magnus Wärja

24 Klasser och objekt Klass Objektmetoder Klassmetoder
Ett objekt är en instans av en klass. Av en klass kan man skapa flera instanser (objekt) med var för sig olika tillstånd. Man kan se objekt som svarta lådor där objektets metoder låter oss påverka objektets tillstånd utan att faktiskt känna till hur det går till, eller hur det ser ut, "under skalet”. Objektmetoder En metod är en definition av en viss händelse. Ett objekt (och ibland en klass) använder metoder för att vi skall kunna kommunicera med den. Det enda vi behöver veta om en metod är vilken typ av data vi behöver förse den med och vad vi får tillbaka. En TV har till exempel metoder i form av olika knappar. Genom att känna till knapparnas egenskaper kan vi genom att trycka på rätt knapp påverka en viss TV:s tillstånd. Klassmetoder En del metoder kan användas genom klassnamnet istället för att skapa ett objekt av klassen. Dessa metoder kallas klassmetoder eller statiska metoder. Math-klassen innehåller många statiska metoder Magnus Wärja

25 Anrop till konstruktor
Skapa objekt Objekt initieras (skapas, deklareras) på ett annat sätt än deklaration av primitiva datatyper. Scanner scan = new Scanner (System.in); Klassdeklaration Parameter Anrop till konstruktor Nytt objekts namn Konstruktorn finns i klassen Scanner Magnus Wärja

26 Klassen Strings konstruktor
Operatorn new behövs ej när man skall skapa Stringobjekt (detta gäller enbart klassen String). public class Referensvariabler{ public static void main(String[] args){ String namn = new String("Anna Nilsson"); //Ett Stringobjekt kan skapas och initieras samtidigt String namn = "Anna Nilsson"; // eller som nedan: // String namn // namn = "Anna Nilsson"; System.out.println("namn: " + namn); } namn: Anna Nilsson Magnus Wärja

27 Att använda metoder Objektmetoder
En metod är en definition av en viss händelse. Ett objekt (och ibland en klass) använder metoder för att vi skall kunna kommunicera med den. Det enda vi behöver veta om en metod är vilken typ av data vi behöver förse den med och vad vi får tillbaka. En TV har till exempel metoder i form av olika knappar. Genom att känna till knapparnas egenskaper kan vi genom att trycka på rätt knapp påverka en viss TV:s tillstånd. Magnus Wärja

28 Använda klasser och objekt
Till skillnad från primitiva datatyper har objekt specifika metoder. import java.util.Scanner; public class OH28{ public static void main(String[] args){ final int PENSION = 65; int ålder = 38; int årTillPension; Scanner scan = new Scanner(System.in); String namn; System.out.print("Vad heter du? "); namn = scan.nextLine(); System.out.print("Hur gammal är du? "); ålder = scan.nextInt(); namn = namn.toUpperCase(); årTillPension = PENSION - ålder; System.out.println(namn + ", du går i pension om: " + årTillPension + " år!"); } Metodnamn (och ett metodanrop) Metodnamn (och ett metodanrop) Metodnamn (och ett metodanrop) Vad heter du? anna Hur gammal är du? 20 ANNA, du går i pension om: 45 år! Magnus Wärja

29 Att använda metoder Nedan ändvänds några av klassen Strings metoder
public class AnvändaMetoder{ public static void main(String[] args){ String namn = "Anna Nilsson"; System.out.println("Antal tecken: " + namn.length()); System.out.println(”Namn: " + namn.toUpperCase()); } Antal tecken: 12 Namn: ANNA NILSSON Magnus Wärja

30 Klassen Strings metoder
Nedan ändvänds några av klassen Strings metoder public class Stringmetoder{ public static void main (String [] args){ int langd; String tecken; String personEtt = "Anna Nilsson"; String personTva = "Hans Månsson"; personEtt = personEtt.toUpperCase(); //ANNA NILSSON personTva = personTva.toLowerCase(); //hans månsson langd = personEtt.length(); //12 tecken = personTva.substring(1,2); //a personEtt = personEtt.replace('N','X'); //AXXA XILSSOX personTva = personTva.substring(0,4); //hans } Metoder kan ta emot en till flera parametrar Magnus Wärja

31 Några av klassen Strings metoder
Method Summary boolean contains(CharSequence s) Returns true if and only if this string contains the specified sequence of char values.  boolean equals(Object anObject) Compares this string to the specified object.  int indexOf(String str) Returns the index within this string of the first occurrence of the specified substring. indexOf(String str, int fromIndex) Returns the index within this string of the first occurrence of the specified substring, starting at the specified index. length() Returns the length of this string.  String replace(String oldChar, String newChar) Returns a new string resulting from replacing all occurrences of oldChar in this string with newChar. substring(int beginIndex) Returns a new string that is a substring of this string. substring(int beginIndex, int endIndex) toLowerCase() Converts all of the characters in this String to lower case using the rules of the default locale. toUpperCase() Converts all of the characters in this String to upper case using the rules of the default locale. Magnus Wärja

32 Paket Javas inbyggda klassbibliotek är organiserade i paket.
Några av paketen specificeras nedan: Alla java.lang-paketets klasser importeras automatiskt till programmet. Därför har import inte används när vi använt System- och String-klasserna i tidigare exempel. Paket java.lang java.applet java.awt javax.swing java.net java.util javax.xml.parsers Syfte Generell support Skapar applets för webben Grafik och grafiska gränssnitt Ytterligare grafiska möjligheter och komponenter Nätverkskommunikation Allmänna ”nyttiga” klasser Hantering av XML dokument Magnus Wärja

33 Importera paket När du skall använda en klass som finns i ett paket behöver du importera paketet och ange adressen till den klass du vill använda: import java.util.Random; Med hjälp av asterisk (*) kan du importera alla klasser i ett paket: import java.util.*; Magnus Wärja

34 Importera klassen Random
I java.util-paketet ingår Randomklassen vilken innehåller klasser som genererar olika slumpmässiga tal. import java.util.Random; public class Slumptal{ public static void main (String[] args){ Random slumptal = new Random(); int tal1; tal1 = slumptal.nextInt(); System.out.println ("Ett slumptal (integer): " + tal1); tal1 = slumptal.nextInt(7); System.out.println ("Från 0 till 6: " + tal1); tal1 = slumptal.nextInt(6) + 1; System.out.println ("Från 1 till 6: " + tal1); tal1 = slumptal.nextInt(20) - 10; System.out.println ("Från -10 till 9:" + tal1); } Ett slumptal (integer): Från 0 till 6: 2 Från 1 till 6: 1 Från -10 till 9: -2 Magnus Wärja

35 Några av klassen Randoms metoder
float nextFloat() Randoms a random number between 0.0 (inclusive) and 1.0 (exclusive).  int nextInt() Randoms a random number that rangers over all possible int values (positive and negative). nextInt(int num) Randoms a random number in the range 0 to num-1. Magnus Wärja

36 Klassmetoder (statiska metoder)
En del metoder kan användas genom klassnamnet istället för att skapa ett objekt av klassen. Dessa metoder kallas klassmetoder eller statiska metoder. Math-klassen innehåller många statiska metoder. Magnus Wärja

37 Klassmetoder (statiska metoder)
import java.util.Scanner; //Klassen Math ingår i java.lang-paketet, //import behövs därför ej göras.) public class BeraknaKvadratrot{ public static void main (String[ ] args){ double tal; double kvadratrot; Scanner scan = new Scanner (System.in); System.out.print ("Ange ett tal: "); tal = scan.nextDouble(); //EJ STATISK kvadratrot = Math.sqrt(tal); //STATISK (Klassnamnet anropas. Inget objekt har skapats) System.out.println ("Kvadratroten av talet är: " + kvadratrot); } Ange ett tal: 25 Kvadratroten av talet är: 5.0 Magnus Wärja

38 Några av klassen Math metoder
static int abs(int a) Returns the absolute value of an int value. static double cos(double a)   Returns the trigonometric cosine of an angle. sin(double a)   Returns the trigonometric sine of an angle. tan(double a)   Returns the trigonometric tangent of an angle. exp(double a)   Returns Euler's number e raised to the power of a double value. pow(double a, double b)   Returns the value of the first argument raised to the power of the second argument. random()   Returns a double value with a positive sign, greater than or equal to 0.0 and less than 1.0. sqrt(double a)   Returns the correctly rounded positive square root of a double value. Magnus Wärja

39 Formatering (NumberFormat)
import java.util.Scanner; import java.text.NumberFormat; public class Formatering{ public static void main(String[] args){ final double RABATT = 0.25; int kvantitet; double pris; Scanner scan = new Scanner (System.in); NumberFormat fmt1 = NumberFormat.getCurrencyInstance(); NumberFormat fmt2 = NumberFormat.getPercentInstance(); System.out.print("Ange kvantitet: "); kvantitet = scan.nextInt(); System.out.print("Ange pris: "); pris = scan.nextDouble(); System.out.println("Totalpris: " + (kvantitet * pris)); System.out.println("Totalpris: " + fmt1.format(kvantitet * pris)); System.out.println("Totalpris med " + fmt2.format(RABATT) + " rabatt är: " fmt1.format((kvantitet * pris) - ((kvantitet * pris) * RABATT))); } Ange kvantitet: 100 Ange pris: 25 Totalpris: Totalpris: 2 500,00 kr Totalpris med 25% rabatt är: 1 875,00 kr Magnus Wärja

40 Några av klassen NumberFormats metoder
 String format(double number) Specialization of format. static NumberFormat getCurrencyInstance() Returns a currency format for the current default locale. getPercentInstance() Returns a percentage format for the current default locale. Magnus Wärja

41 Formatering (DecimalFormat)
import java.util.Scanner; import java.text.DecimalFormat; public class Formatering2{ public static void main(String[] args){ double tal1 =310; double tal2 = 3; Scanner scan = new Scanner (System.in); DecimalFormat fmt1 = new DecimalFormat("0.###"); System.out.print("Ange ett tal: "); tal1 = scan.nextDouble(); System.out.print("Ange ytterligare ett tal: "); tal2 = scan.nextDouble(); System.out.println(tal1 +"/" + tal2 + " = " + (tal1/tal2)); System.out.println(); System.out.println("Med klassen DecimalFormat"); System.out.println(tal1 +"/" + tal2 + " = " + fmt1.format(tal1/tal2)); } Ange ett tal: 10 Ange ytterligare ett tal: 3 10.0/3.0 = Med klassen DecimalFormat 10.0/3.0 = 3,333 Magnus Wärja

42 Några av klassen DecimalFormats metoder
Konstruktor DecimalFormat(String pattern)           Creates a DecimalFormat using the given pattern and the symbols for the default locale. Metoder void applyPattern(String pattern)           Apply the given pattern to this Format object.  String format(double number)           Returns a string containing the specified number formatted according to the current pattern. Magnus Wärja

43 Wrapper-klass Det finns en så kallad wrapper-klass för var och en av Javas primitiva datatyper(tex int > Integer, float > Float, double > Double). I dessa klasser finns det två mycket användbara metoder (särskilt vid gränssnittsprogrammering). Metoden parseXXX (tex x = Double.parseDouble(enTextsträng)) skapar en primitiv datatyp av ett Stringobjekt. Metoden toString (tex Double.toString(enDouble)) skapar ett Stringobjekt av en primitiv datatyp. public class BeraknaMoms{ public static void main (String[ ] args){ Scanner scan = new Scanner (System.in); String pNr; int födelseår; String resultat; System.out.print ("Skriv in ditt personnummer: "); pNr = scan.nextLine(); pNr = pNr.substring(0,2); födelseår = Integer.parseInt(pNr); //String till int! resultat = Integer.toString(108-födelseår); //int till String! System.out.println ("Du blir/blev " + resultat + " år " + "i år"); } Skriv in ditt personnummer: Du blir/blev 38 år i år Magnus Wärja

44 Magnus Wärja

45 Boolska uttryck En villkorssats använder ofta någon av Javas relationsoperatorer, som alla returnerar boolska svar, dvs true eller false : == lika med != inte lika med < mindre än > större än <= mindre än eller lika med >= större än eller lika med Notera skillnaden mellan “lika med”-operatorn (==) och tilldelningsoperatorn (=) Magnus Wärja

46 Boolska uttryck 56 == 56 Sant ’a’ == ’a’ ’a’ == ’A’ Falskt ’x’ != ’z’
45 < 80 2 >= 6 2 >= 2 Magnus Wärja

47 Logiska uttryck Det logiska NOT - uttrycket:
!a är sant om a är falskt och falskt om a är sant Det logiska AND - uttrycket: a && b är sant om både a och b är sant. Annars falskt Det logiska OR - uttrycket a || b är sant om a eller b eller båda är sant. Annars falskt Magnus Wärja

48 Selektion (if- sats) falskt sats sant villkor if ( villkor ) sats
Magnus Wärja

49 Selektion (if- else- sats)
import java.util.Scanner; public class IfSats1{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); final double TIMLÖN = 100; final int VECKA = 40; int timmar; double utbetala; System.out.print("Skriv in veckans arbetade timmar: "); timmar = scan.nextInt(); if (timmar > VECKA){ utbetala = VECKA * TIMLÖN + (timmar - VECKA) * (TIMLÖN * 1.5); } else{ utbetala = timmar * TIMLÖN; System.out.println("Veckans lön: " + utbetala + " kr " ); Skriv in veckans arbetade timmar: 80 Veckans lön: kr Magnus Wärja

50 Selektion (if- else- sats)
import java.util.Scanner; public class IfSats2{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); int poäng; int betyg; System.out.print("Skriv in ditt tentaresultat (0 to 100): "); poäng = scan.nextInt(); betyg = poäng / 10; if (betyg > 7){ System.out.println("Ditt betyg är VG"); } else if (betyg < 5){ System.out.println("Ditt betyg är U"); else{ System.out.println("Ditt betyg är G"); Skriv in ditt tentaresultat (0 to 100): 85 Ditt betyg är VG Magnus Wärja

51 Blocksatser Block Gissa ett nummer mellan 1 och 10: 7
import java.util.Scanner; public class Gissa{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); final int SVAR = 4; int gissatNummer; System.out.print("Gissa ett nummer mellan 1 och 10: "); gissatNummer = scan.nextInt(); if (gissatNummer == SVAR) System.out.println("BRA, RÄTT NUMMER !!!"); else{ System.out.println("Ditt svar var tyvärr fel."); System.out.println("Rätt nummer var: " + SVAR); } Block Gissa ett nummer mellan 1 och 10: 7 Ditt svar var tyvärr fel. Rätt nummer var: 4 Magnus Wärja

52 Nästlade satser Ange betyg: 10 Du har angivit ett felaktigt värde!
import java.util.Scanner; public class IfSats3{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); int resultat; System.out.print("Ange betyg: "); resultat = scan.nextInt(); if (resultat > 0 && resultat < 10){ if (resultat > 4 && resultat <= 7){ System.out.println("Resultat = G"); } else if (resultat > 7){ System.out.println("Resultat = VG"); else{ System.out.println("Resultat = U"); System.out.println("Du har angivit ett felaktigt värde!"); }}} Ange betyg: 10 Du har angivit ett felaktigt värde! Magnus Wärja

53 Iteration (while- sats)
While-satsen har följande syntax: sats sant villkor falskt while ( villkor ) sats; Satsen upprepas tills dess att villkoret ger värdet falskt. Magnus Wärja

54 Iteration (while- sats)
import java.util.Scanner; public class Räknare{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); int summa = 0; int antal; int index = 1; System.out.print("Skriv in ett heltal: "); antal = scan.nextInt(); while (index <= antal){ summa += index; //summa = summa + index index ++; // index = index + 1; } System.out.println(" " + antal + "=" + summa ); Skriv in ett heltal: 9 =45 Magnus Wärja

55 Iteration (for- sats) sats sant villkor falskt uppräkning
En for-sats är detsamma som följande while-sats: sats sant villkor falskt uppräkning initialisering initialisering; while ( villkor ) { sats; uppräkning; } Magnus Wärja

56 Iteration (for- sats) Uppräkning Initialisering Villkor
for (int index = 1; index <= antal; index ++) sats; Uppräkning Initialisering Villkor Magnus Wärja

57 Iteration (for- sats) Skriv in ett heltal: 9 1+2+3+...9=45
import java.util.Scanner; public class Räknare3{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); int summa = 0; int antal; System.out.print("Skriv in ett heltal: "); antal = scan.nextInt(); for (int index = 1; index <= antal; index ++){ summa = summa + index; // index = index + 1; } System.out.println(" " + antal + "=" + summa ); Exenpel på en for-sats för att förtydliga föregående OH. Skriv in ett heltal: 9 =45 Magnus Wärja

58 Nästlade satser import java.util.Random; import java.util.Scanner;
public class Tjugoett{ public static void main(String[] args){ Random slumptal = new Random(); Scanner scan = new Scanner(System.in); int summa = 0; int resultat; boolean spela = true; while(spela){ summa += slumptal.nextInt(6) + 1; System.out.println("Summa: " + summa); if (summa < 22){ System.out.println("Kasta (Ja=0, Nej=1): "); resultat = scan.nextInt(); if (resultat != 0){ spela = false; } else{ System.out.println("Resultat: " + summa); }} Magnus Wärja

59 Magnus Wärja

60 Arrayer En array är en ordnad lista med element poäng Hela arrayen har ett namn Varje element har ett index En array av storlek N indexeras från noll till N-1 Denna array håller 10 värden som indexeras från 0 till 9 Magnus Wärja

61 Array Ett visst värde i en array kommer man åt med arrayens namn följt av index inom hakparanteser Till exempel poäng[2] ger talet 94 (det tredje talet i vår array) Uttrycket representerar en plats att spara en enkel integer och kan användas överallt där int-variabel används Magnus Wärja

62 Array Ett element i en array kan tilldelas ett värde, skrivas ut, eller användas i en beräkning, osv public class MinArray{ public static void main (String[] args){ int[] poäng = new int[10]; poäng[3] = 82; poäng[2] = poäng[3] + 12; System.out.println(poäng[2]); System.out.println(poäng[2] / 2); } Värdena i en array kallas array-element En array sparar flera värden av samma typ Typen kan vara en primitiv datatyp eller objektreferenser Därför kan vi skapa array av int, char eller String I Java är en array ett objekt Därför är namnet på arrayen en objektreferens och arrayen i sig själv måste instansieras 94 47 Magnus Wärja

63 Deklarera en array Några deklarationer av arrayer: int[] resultat = new int[10]; float[] pris = new float[500]; boolean[] flagga = new boolean[20]; char[] koder = new char[1750]; Datatypen är int[] (en array av int] Notera att deklarationen inte talar om arrayens storlek Ett objekt av den typen kommer att få en viss storlek new int[10] skapar det nya objektet som är en array av int med plats för 10 int. När en array väl har skapats så har den en fast storlek Magnus Wärja

64 Arrayens gränser problem
minArray[100] har index 0 till 99 Anger man ett annat index så får man ArrayIndexOutOfBoundsException System.out.println(minArray[100]); // Detta ger ett fel Det är vanligt att man av misstag räknar för långt i loopar for (int index = 0; index <= 100; index ++) minArray [index] = index * 50; problem Once an array is created, it has a fixed size An index used in an array reference must specify a valid element That is, the index value must be in bounds (0 to N-1) The Java interpreter throws an ArrayIndexOutOfBoundsException if an array index is out of bounds This is called automatic bounds checking Magnus Wärja

65 Användning av Array Ange fem tal: Ange tal 1:5 Ange tal 2:6
import java.util.Scanner; public class Array{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); int tal = 0; int summa = 0; int[] list = new int[5]; System.out.println("Ange fem tal: "); for (int i = 0; i < 5; i ++){ System.out.print("Ange tal " + (i + 1) + ":"); tal = scan.nextInt(); list[i] = tal; } summa += list[i]; System.out.println("Summan av talen är: " + summa); Ange fem tal: Ange tal 1:5 Ange tal 2:6 Ange tal 3:4 Ange tal 4:8 Ange tal 5:2 Summan av talen är: 25 Magnus Wärja


Ladda ner ppt "Kommentarer Kommentarer påverkar inte programmet. Hello World! /*"

Liknande presentationer


Google-annonser