180 likes | 432 Views
Kapittel 5. Vilkårssetningar og løkker. 5.1 Boolske uttrykk. George Boole (1815-1864), britisk matematikar Utvikla teori om logikk ved bruk av symbol i staden for ord
E N D
Kapittel 5 Vilkårssetningar og løkker
5.1 Boolske uttrykk • George Boole (1815-1864), britisk matematikar • Utvikla teori om logikk ved bruk av symbol i staden for ord • Meir om den matematiske delen av dette i kurset Mat200 Diskret Matematikk, som er svært viktig for den som skal bli flink til å programmere
Boolske uttrykk • Flytkontrollen i eit program • Startar øverst i main() • Eksekverer ei og ei setning (statement) i programmet til main() er slutt • Metodekall overfører kontrollen til metoden som blir kalt, når denne er ferdig går kontrollen tilbake til der kallet skjedde i main(), og neste setning i main() blir utført • Det kan vere metodekall i fleire nivå
Boolske uttrykk • Vi har ofte bruk for å påvirke flytkontrollen i eit program for å • Bestemme kva kode som skal eksekverast/ikkje eksekverast • Bestemme kor mange gonger ein bestemt del av koden skal eksekverast • Vi kan påvirke flytkontrollen ved hjelp av • Vilkårssetningar (if, if-else og switch) • Løkker (while, do og for) • Tilstanden til ulike variable blir brukt for å bestemme kva som skal skje • Boolske uttrykk gir alltid enten trueeller false
Boolske uttrykk • Boolske uttrykk bruker operatorar for • Likskap (== og !=) • Relasjon (<, <=, > og >=) • Logikk (!, && og ||) • Presedens: • Likskap og relasjon lågare enn aritmetiske operatorar • Logiske operatorar: ! først, deretter &&, til slutt || • Merk at dei logiske operatorane berre tek boolske operandar
5.2 if-setningar • Det reserverte ordet if • Boolsk uttrykk i parentes • Statement som blir eksekvert dersom det boolske uttrykket er true • Bruk { og } før og etter dersom det er fleire statement • Om det boolske uttrykket er false held programmet fram utan å eksekvere innhaldet i if-setninga
if-setningar • if-else • Vi legg til det reserverte ordet else etter innhaldet i if-setninga • Deretter eit eller fleire statement • Ein av dei to delene av if-else setninga vil bli eksekvert, avhengig av om det boolske uttrykket er trueeller false • Nøsta if-setningar, eventuelt med else • Eit else blir alltid kopla til næraste if • Bruk {} for å styre dette om nødvendig • ?: operatoren • int total = (done) ? sum : 0;
5.3 Samanlikning av data • Kva type data skal vi samanlikne? • Flyttal (float, double) • Desse er like berre når alle binære siffer er like • Det skjer nesten aldri når vi har utført rekneoperasjonar • Finn absoluttverdien av differansen og sjekk denne mot ei grense • Teikn (char) • ‘a’ < ‘b’ sidan a kjem før b i Unicode • Unicode bestemmer rekkefølgje for char-data, og dermed kva som er “størst” og “minst”
Samanlikning av data • Objekt • Objektvariable er referanser eller adresser til objekt • To objekt blir dermed “like” etter == operatoren berre dersom dei refererer til det same objektet • To String-objekt som begge inneheld teksten “Johan”, men som er to separate objekt, er dermed ikkje like om vi bruker denne operatoren! • Bruk equals() eller equalsIgnoreCase() for å sjekke om to String-objekt er logisk sett like • Bruk compareTo() for å sjekke alfabetisk rekkefølgje • Ver obs på at store bokstavar kjem før små i Unicode
5.4 switch • Tilsvarer Select Case i VB • Litt om syntaks • Uttrykket må vere av integral (heil) type, altså int, char eller enumerert type • Ikkje boolean, byte, short eller long • break statement og “fall through” • default statement • switch kan alltid erstattast med eit sett nøsta if-setningar • Nøsta if kan bli uoversiktleg når det er mange case • Kan vere nyttig ved evaluering av andre typer enn int og char, ev enumerert
5.5 while • Syntaks • Uendelege løkker • Nøsta løkker • break og continue • Kan vere kjekt å ha • Er aldri nødvendige • Bør ikkje brukast
5.6 Iteratorar • Iterere betyr gjenta • Iteratorar er objekt med metoder som kan gå gjennom ei samling av objekt og prosessere eit objekt om gongen • Scanner-klassen definerer iterator-objekt • Eksempel på lesing av fil
5.7 do • Liknar på while • while-statement med test av vilkår til slutt • Pass på semikolon til slutt! • Ei do-løkke blir alltid kjørt minst ein gong
5.8 for • Blir ofte brukt når vi veit kor mange gonger løkka skal kjørast • Alt som har med kontroll av løkka å gjere står samla øverst • Dei tre delene blir utført til ulike tider • foreach statement når vi går gjennom ei samling
5.9 Løkker, vilkår og grafikk • Bullseye • Boxes
5.10 Event sources • Vi kan bruke ein listener til å lytte på fleire komponentar • Vi kan spørre listener-objektet om kva komponent som genererte hendinga • Deretter kan vi utføre ulike ting, alt etter kva komponent handlinga kom frå • LeftRight
5.11 Dialogboksar • Javax.swing-pakken har klassen JOptionPane som tilbyr å lage diverse dialogboksar på ein enkel måte • Input • Bekrefte • Melding • Det finst ein del “ferdigvare” i Java også, sjølv om vi må lage litt meir her enn i VB
5.12 Fleire knappar • Check boxes • Blir brukt for å skru ulike funksjonar eller brukarval av og på • Ingen, ein, fleire eller alle kan vere valt samtidig • Radio buttons • Blir brukt når kun eit alternativ av fleire kan veljast • Blir samla i grupper • Ein og berre ein i kvar gruppe er valt samtidig