Vahid 28 okt 2002 prgk02 Övning2 -Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, <=,>=, <,>,!=,!) -String hur man använder API:n -if, if-else -for -while Variabler En variable är ett utrymmei datorns arbetsminne som används av ett program under programmets exekvering. Obs! Variabelnamn väljs av programmeraren. t.ex: doublelängd; int ålder; Variabeldeklaration Data typer Primitiva datatyp int double byte float char boolean short long Referensdatatyp String BufferedReader InputStreamReader 1
Primitiva datatyper Heltal byte : -256 0 255 short: -32 768 0.32 767 int: -2 147 483 648 0... 2 147 483 647 long: -9 x10^18 0... 9 x 10^18 Flyttal float: -3.4 x 10^38 0 3.4 x 10^38 double:-1.7 x 10^308 0 1.7 x 10^308 Primitiva datatyper Tecken char : a, b, 1, 2, ~, @, &, \n, \t, \,... följande tecken betyder: \n : detta betyder radbyte? \t : detta betyder tabb \ : detta är teckenet Boolsk boolean: true, false Typkonvertering Med hjälp av cast kan man omvandla typer till varandra bara om det är möjligt. t.ex: int x = 3; double y = 4.6; x = y ger kompilerings fel men x = (int) y; Alltså x får värdet 4 y = x, blir det fel här också? eller? 2
Wrapper klasser Primitiva datatyp int double byte float char boolean short long Wrapper class/ Omslagsklass Integer Double Byte Float Character Boolean Short Long String till int String str = 144 ; int etttal; etttal= Integer.parseInt(str); str = tjohoo ; omöjligt att konvertera till int String str; int till String int etttal = 144; str = Integer.toString(ettTal); Alla heltal kan konverteras till String 3
String str; double till String double etttal = 144.47; str = Double.toString(ettTal); Alla flyttal kan konverteras till String String till double String str = 144.47 ; double etttal; etttal = Double.parseDouble( str ); str = johoo 14.3 ; omöjligt att konvertera till double Operator Op Exempel Op Exempel + x+y += x+=2, x+=y - y-x -= x-=3, x-=y * x*y!!isempty / x/y *= x*=2, x*=y ++ x++ eller ++x /= x/=2, x/=y -- y-- eller --y % x%y == x==y!= x!=y 4
% (modulo) beräknar det som blir kvar av en division int tal1 = 25; int tal2 = 29; int resultat = tal2 % tal1; // resultatfår värdet? resultat = tal1 % tal2; // resultat får värdet? jämförelse operatorer == och!= int tal1 = 25; int tal2 = 35; boolean lika; lika = (tal1== tal2); //lika får värdet? lika = (tal1!= tal2); //lika får värdet? Negations operatorn! Boolean lika = false; lika=!lika; // lika får värdet? jämförelse operatorer <=, >=, < och > int tal1 = 25; int tal2 = 35; int tal3 = 25; boolean lika; lika = (tal1<= tal2); //lika får värdet? lika = (tal1 >= tal2); //lika får värdet? lika = (tal1<= tal3); //lika får värdet? lika = (tal1 >= tal3); //lika får värdet? lika = (tal1< tal2); //lika får värdet? lika = (tal1 > tal2); //lika får värdet? Uppgift 1 Följande deklarationer är givna. Ange resultatet för varje deluppgift. int w = 10; int y = 3; a. w%y b. y%w b. y%2 5
Skri ett program som frågar efter antal dagar får denna månad och beräknar antal hel vecka och antal dagar av eventuella halv veckan? körnings exampel av programmet: Hur många dagar är denna månad? 30 Denna månad är 4 veckor och 2 dagar. Satser if if-else for sats while sats do-while sats if-sats En if-sats består av följande delar 1.if 2.villkor-sats (Condition) 3.uttryck (statement) t.ex: if(villkor-sats) uttryck; Villkor Uttryck Kod efter ifsatsen... 6
if ( bokpris > 500 ){ System.out.println( dyr bok, ingen affär ); } bokpris>500 System.out.println( dyr bok, ingen affär ); Kod efter ifsatsen... if-else sats En if-elsesats består av följande delar 1.if 2.villkor-sats (Condition) 3.uttryck (statement) 4. else 5. uttryck (statement) Villkor t.ex: if(villkor-sats) uttryck1 else uttryck2 uttryck1 Kod efter if-else... uttryck2 if ( bokpris > 500 ) System.out.println( dyr bok, ingen affär ); else System.out.println( billig bok, jag köper ); bokpris>500 System.out.println( billig ); System.out.println( dyr ); Kod efter if-else... 7
Skriv ett program som frågar efter vikt och längden och beräknar BMI:n? Formel för BMI är: vikt* 1000/(längd*längd) Utöka programmet så att den skriver ut om man behöver gå ner, upp eller behålla sin vikt. BMI gräns för normal vikt är mellan 18.5 till 25.0 for-sats for-sats består av följande delar 1.for 2.(A;B;C) A är oftast deklaraton och initiering av veriabel B är ett villkor-sats (Condition) C oftast är en stegning-sats 3. uttryck (statement) for ( int i=0 ; i< 10; i++ ) { System.out.println( Java är enkelt ); } while-sats while-sats består av följande delar: 1. while 2. Villkor-sats (condition) 3. uttryck (statement) int i=0; while (i<10) { System.out.println( programmering är kul ); i++; } 8
Modell för for och while-sats... kod före for eller while Villkor uttryck Kod efter for eller while... int i=0; i<10 System.out.println( hej ); i++; Kod efter for eller while... Utöka BMI programmet så att programmet frågar efter vikt och längd i upprepande gånger och beräknar BMI:n för varje gång. Programmet kan avslutas om man t.ex matar in 0 för vikt. 9