4 september 2015
Deze les korte herhaling vorige week loops methodes
Variabelen Soorten variabelen in Java: integer: een geheel getal, bijv. 1,2,3,4 float: een gebroken getal, bijv. 3.1415 double: een gebroken getal, bijv. 3.14159274932084 char: een character, bijv. a,b,c,enz boolean: heeft de waarde true of false
Werken met variabelen Twee stappen: declareren: kenbaar maken dat je een variabele wilt gebruiken initializeren: de variabelen een waarde geven wijzigen: aan de variabele een nieuwe waarde toekennen lezen: de waarde van een variabele gebruiken
Declareren en initializeren In de main methode: declareren: int x; initializeren: x=5; Meerdere variabelen: declareren: int x,y,z; initializeren: x=5,y=10,z=30.342;
Variabelen gebruiken Standaard operaties: optellen: x=y+z; aftrekken: y=x-z+y; delen: x=z/3; vermenigvuldigen: x=x*y*z;
De = operator De expressie x=x+1; is in Java toegestaan, terwijl dit wiskundig onjuist is... Tip: Spreek het = teken uit als wordt...
Variabelen printen Gebruik een simpele println();: int x=34,y=65; System.out.println("De waarde van x: "+x+". De waarde van y: "+y); Uitvoer: De waarde van x: 34. De waarde van y: 65
Integers afkappen Wat nu? int x=3,y=2,z; z=x/y; System.out.println("De waarde van z: "+z); integers worden niet afgerond integers worden afgekapt: alles na de komma verdwijnt! De waarde is 1.5, de uitvoer wordt dus: De waarde van z: 1
Strings een String is een lijstje characters, bijv. hallo in Java is een String geen ingebakken datatype strings zijn objecten op strings kan men operaties uitvoeren door methodes aan te roepen
Strings en variabelen public class application public static void main(string[] args) int a=5; String s= hallo allemaal ;... float x=2.54;...
In het geheugen a 5 s hallo allemaal x 2.54
Strings manipuleren... String s="hallo allemaal"; s=s.replace( a, o ); System.out.println(s);... Uitvoer: hollo ollemool
String methodes Naast de replace methode bestaan er een groot aantal andere methodes om strings te manipuleren: characters wissen characters naar lowercase / uppercase volgorde omdraaien zoeken naar een character aantal characters tellen aantal voorkomens van een character tellen etc. zie boek!
Strings en variabelen converteren Mag dit? een string is een lijstje characters een float is een variabele float x; String s= 3.1415 x=s;
Strings en variabelen converteren Mag dit? een string is een lijstje characters een float is een variabele float x; String s= 3.1415 x=s; Nee! Voor een computer is 3.1415 een lijstje van 6 characters en dus geen float.
Variabelen naar strings converteren Met de methode valueof kan men een variabele naar een string converteren. Voorbeeld: int x=345; String s=string.valueof(x);
Strings naar variabelen converteren String x= 1234 ; int x=integer.parseint(x); x=x+1; System.out.println( de waarde van x: +x); Uitvoer: de waare van x: 1235
De if constructie gebruik: conditionele uitvoer van statements reageren op input reageren op andere programma s
Voorbeeld int x=5,y=10;...... if((x*y)>40) System.out.println( x is groter dan 40 );......
algemeen if( logische expressie ) statements
De if else constructie int x=5,y=10;...... if((x*y)>40) System.out.println( x maal y is groter dan 40 ); else System.out.println( x maal y is kleiner of gelijk aan 40......
algemeen if( logische expressie ) statements else statements
De if else if constructie int x=5,y=10;...... if(x>1&&y>50) doe_iets; else if(x>1&&y<50) System.out.println( x is groter dan 1 en y is kleiner dan else...
algemeen if( logische expressie ) statements else if(logische expressie) statements else statements
Veel voorkomende constructies post increment: x=x+1; x++; pre increment: x=x+1; ++x; post decrement: x=x-1; x--; pre decrement: x=x-1; --x; x=x+2; x=x*2; x+=2; x*=2;
Pre en post increment int x,y=10; x=y++; System.out.println("de waarde van x: "+x); Uitvoer?
Pre en post increment int x,y=10; x=y++; System.out.println("de waarde van x: "+x); Uitvoer? De waarde van x: 10 Post increment: eerst uitrekenen, dan ophogen
Pre en post increment int x,y=10; x=++y; System.out.println("de waarde van x: "+x); Uitvoer?
Pre en post increment int x,y=10; x=++y; System.out.println("de waarde van x: "+x); Uitvoer? De waarde van x: 11 Pre increment: eerst ophogen, dan uitrekenen
Loops Maken het mogelijk stukjes code een bepaald aantal malen te herhalen drie soorten: while... do do... while for kunnen met het break statement worden doorbroken.
While loop: flow of control voldaan conditie niet voldaan while blok
While loop: algemene schrijfwijze... while(conditie) body van while loop...
While loop: voorbeeld int i=20; while(i<40) System.out.println("De waarde van i: "+i); i++;
While loop: voorbeeld int i=40; while(i>20) System.out.println("De waarde van i: "+i); i--;
Do while loop is bijna hetzelfde als de while loop, maar: evaluatie van de conditie wordt aan het einde van de loop uitgevoerd, derhalve: wordt tenminste één maal uitgevoerd, ongeacht de conditie
Do while loop: flow of control do blok conditie niet voldaan voldaan
Do while loop: Algemene schrijfwijze do... statements;... while(conditie)
Do while loop: voorbeeld int i=0; do System.out.println("De waarde van i: "+i); i++; while(i<20)
While en do while loop: flow of control do blok voldaan conditie while blok niet voldaan voldaan conditie niet voldaan
For loop veel gebruikt voor loops, waarvan van tevoren bekend is hoe vaak iets moet worden uitgevoerd
For loop: flow of control initialisatie conditie voldaan for blok niet voldaan update
For loop: algemene schrijfwijze Algemene schrijfwijze: for(start expressie;voorwaarde expressie;update expressie) body van for loop start expressie: met welke waarde moet de loop beginnen? voorwaarde expressie: is aan de voorwaarde voldaan? update expressie: verander een variabele (gewoonlijk ophogen)
For loop: werking 1 evalueer de start expressie (variabelen aanmaken/initializeren) 2 evalueer de voorwaarde expressie 3 voorwaarde voldaan? voer de loop body uit, anders stop 4 evalueer de update expressie 5 terug naar stap 2
For loop: voorbeeld int i; for(i=0;i<10;i=i+1) System.out.println("De waarde van i: "+i); Declaratie en initialisatie van de loop variabele op twee regels.
For loop: voorbeeld for(int i=0;i<10;i=i+1) System.out.println("De waarde van i: "+i); Declaratie en initialisatie van de loop variabele op in één keer.
For loop: voorbeeld for(int i=0;i<10;i++) System.out.println("De waarde van i: "+i); Post increment
For loop: nesting int x=0; for(int i=0;i<20;i++) for(int j=0;j<100;j++) x=x+i+j; System.out.println(x);
Het break statement Met het keyword break; kan men uit een loop breken: for(int i=0;i<200;i++) System.out.println(i); if(i>50) break; hoe vaak wordt deze loop uitgevoerd?
Het break statement Met het keyword break; kan men uit een loop breken: for(int i=0;i<200;i++) System.out.println(i); if(i>50) break; hoe vaak wordt deze loop uitgevoerd? antwoord: 52 keer...
Methodes De methode: is een soort bundeling van statements heeft een naam die je zelf kunt kiezen heeft parameters of argumenten heeft een returntype kan men overal in een klasse neerzetten is voorlopig als public gedeclareerd heeft een body en een signatuur kan andere methodes uit dezelfde klasse aanroepen
Methodes in andere talen Java C/C++ Vroegere talen Vroegere talen methode functie procedure (sub)routine
Voorbeeld... public int maximum(int x, int y) if(x>y) return x; else if(x<y) return y; else return 0;
Methodes gebruiken public class voorbeeld public static void main(string[] args) boolean result; result=gokje(5); System.out.println("Resultaat: "+result); public static boolean gokje(int x) if(x==7) return true; return false;
algemene schrijfwijze public static returntype methodenaam(parameters) methode body
Body en signatuur De signatuur van een methode: returntype naam parameters Kortom: de signatuur is alles, behalve de body van een methode
Void methodes Een void methode geeft niets terug: public static void printdegrootste(int x,int y) if(x>y) System.out.println(x); else if(x<y) System.out.println(y); else System.out.println("De waarden zijn gelijk");
Recursie Een methode kan zichzelf aanroepen: public static int faculty(int x) if(x==0)return 1; else return (x*faculty(x-1));
Recursie
Recursie?
Eindige methode? public static void Foo(int x) while(x!=1) if(x%2==0) x/=2; else x=((3*x)+1); return;
Algemene structuur public class voorbeeld public static void main(string[] args) variabelen if-else constructies loops statements public static void methode() variabelen if-else constructies loops statements
Huiswerk lezen over loops en methodes (t/m blz. 118 dus!) oefenen... maken practicumopdracht 3 (zie site) oefenen en experimenteren met kleine programma s