Feilmeldinger, kontrollflyt og void-metoder

Like dokumenter
Feilmeldinger, brukerinput og kontrollflyt

Feilmeldinger, kontrollflyt og void-metoder

Metoder med parametre, løkker og arrayer

INF uke 2. Inputt, beslutninger, kontrollflyt og prosedyrer

IN uke 2. Presis forståelse av programmering

IN uke 2. Presis forståelse av programmering

Løse reelle problemer

Hvordan løse problemer med programmering?

Løse reelle problemer

INF 1000 høsten 2011 Uke september

INF1000 undervisningen INF 1000 høsten 2011 Uke september

Løse reelle problemer

LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

Programmeringsspråket C

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

Løkker og arrayer. Løse problemer med programmering. INF1000, uke3 Geir Kjetil Sandve

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen

Oversikt. INF1000 Uke 2. Repetisjon - Program. Repetisjon - Introduksjon

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java

Jentetreff INF1000 Debugging i Java

UNIVERSITETET I OSLO

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program

Løsningsforslag ukeoppg. 2: 31. aug - 6. sep (INF Høst 2011)

Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon

UNIVERSITETET I OSLO

Løkker og lister. Løse problemer med programmering. INF1001, uke3 Geir Kjetil Sandve

Finne ut om en løsning er helt riktig og korrigere ved behov

INF1000 Metoder. Marit Nybakken 16. februar 2004

Finne ut om en løsning er helt riktig og korrigere ved behov

INF1000 (Uke 5) Mer om løkker, arrayer og metoder

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; }

2 Om statiske variable/konstanter og statiske metoder.

Programmering Høst 2017

Læringsmål og pensum. if (be): else (not_to_be):

Forelesning inf Java 5

Forelesning inf Java 5

UNIVERSITETET I OSLO

Dagens tema Kapittel 8: Objekter og klasser

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk. - 3rd edition: Kapittel 3. Professor Alf Inge Wang

UNIVERSITETET I OSLO

Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr

Input og beslutninger

Blokker og metoder INF1000 (Uke 6) Metoder

Innlesing fra fil og metoder med returverdier

2 Om statiske variable/konstanter og statiske metoder.

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

Uke 8 Eksamenseksempler + Ilan Villanger om studiestrategier. 11. okt Siri Moe Jensen Inst. for informatikk, UiO

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

i=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4

Forelesning inf Java 4

INF1000 (Uke 4) Mer om forgreninger, While-løkker

Forkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen

Tre måter å lese fra terminal. Java 4. Eksempel. Formatert utskrift til skjerm

I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker. Tre måter å lese fra terminal. Repetisjon. Mer om forgrening While-løkker

Løse reelle problemer

I dag. Rep: Oppsummering - variabler. Rep: Datatyper. INF1000 (Uke 3) Mer om uttrykk, terminal I/O, forgreninger

if (be): else (not_to_be): TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap.

Introduksjon til objektorientert programmering

INF1000: Forelesning 4. Mer om arrayer Metoder

UNIVERSITETET I OSLO

Praktisk informasjon. I dag. Repetisjon: While-løkker. INF1000 (Uke 5) Mer om løkker, arrayer og metoder

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04

INF 1010, vår 2005 Løsningsforslag uke 11

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3

INF1000. Marit Nybakken 10. februar 2004

Praktisk informasjon. Repetisjon: While-løkker. I dag. INF1000 (Uke 5) Mer om løkker, arrayer og metoder. Oblig 2 er lagt ut

INF1000: Forelesning 7. Konstruktører Static

Forkurs INF1010. Dag 2. Andreas Færøvig Olsen Gard Inge Rosvold Institutt for Informatikk, 14.

I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker. Tre måter å lese fra terminal. Tre måter å lese fra terminal.

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF Uke 10. Ukesoppgaver oktober 2012

Dagens tema. Hva er kompilering? Anta at vi lager dette lille programmet doble.rusc (kalt kildekoden): Hva er kompilering?

Et lite oppdrag i bakgrunnen

Oblig4 - forklaringer. Arne og Ole Christian

Velkommen til. INF våren 2016

Eksempel: Body Mass Index (BMI) Forelesning inf Java 3. Ferdig program (første del) Ferdig program (siste del)

INF1000 : Forelesning 1 (del 2)

Forklaring til programmet AbstraktKontoTest.java med tilhørende filer Konto.java, KredittKonto.java, SpareKonto.java

programeksempel Et større En større problemstilling Plan for forelesingen Problemstillingen (en tekstfil) inneholdt ordet "TGA"

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I

INF1000: Forelesning 7

INF1000 (Uke 6) Mer om metoder, tekster

Python: Valg og betingelser. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Oversikt. Uke 2, INF 1000, 30 aug Variable, tilordninger og uttrykk. Repetisjon: Java programmering

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.

Rep: Metoder. INF1000 (Uke 6) Mer om metoder, tekster. Rep: Metoder. 3 typer variable: Klassevariable. Java-programmene så langt i kurset:

Fra Python til Java, del 2

OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK

MER OM ARRAYER. INF1000: Forelesning 4. Anta at vi ønsker å lagre en liste med navnene på alle INF1000-studentene:

Oversikt. Informatikk. INF1000: Grunnkurs i objektorientert programmering. Utenom INF1000 Informasjon & hjelp

Endret litt som ukeoppgave i INF1010 våren 2004

Variabler, input og beslutninger

INF1000 : Forelesning 3

Håndtere mange verdier

Konstruktører. Bruk av konstruktører når vi opererer med "enkle" klasser er ganske ukomplisert. Når vi skriver. skjer følgende:

Kort repetisjon av doble (nestede) løkker Mer om 1D-arrayer Introduksjon til 2D-arrayer Metoder

Transkript:

Feilmeldinger, kontrollflyt og void-metoder Skjønne hvordan et program presist utføres og forberede seg på håndtering av krøll INF1000, uke2 Geir Kjetil Sandve

Krøll Programmeringskrøll: Programmet vil ikke kjøre (riktig), og dette viser seg å skyldes detaljer som ikke har å gjøre med noe viktig (ikke har å gjøre med underliggende idé) Feil som skyldes at datamaskinen er dum.. Har du allerede rukket å oppleve mye av dette? Det er riktig at den virkelige utfordringen i programmering er kreativ problemløsning Men før man kommer til dette, må man få inn den nødvendige presisjonen

Vårt syn på krøll i kurset Essensen i faget er underliggende prinsipp.. teknikaliteter er uviktig (for nå) Vi har forsøkt å fjerne kilder til krøll der vi kan Men: noe krøll oppstår om man vil eller ikke - det er upresishetens natur Angrep er det beste forsvar Vi fokuserer denne uka på krøll og praktikaliteter, med mål om at dere i størst mulig grad skal slippe å fokusere på det i de kommende uker..

Strategier for å håndtere krøll Kjenne til ulike feilmeldinger Hvorfor de oppstår Hvordan de utbedres Ha en presis forståelse av hvordan et program utføres (eksekveres) Hvordan uttrykk (høyresiden på en linje) evalueres Hvordan et program flyter fra linje til linje

Praktikaliteter Vi vil også presentere noen snarveier (forkortinger) når man skal kode Dette er egentlig uviktige teknikaliteter, men uansett raskt å lære Formålet er igjen å bruke mindre energi på selve kodingen, og ha mer fokus tilgjengelig for problemløsning

Feil og feilmeldinger

Hva er en programfeil? Kompileringsfeil Kompilatoren finner feil/svakhet (javac protesterer) Kjøretidsfeil Ugyldig situasjon oppstår under kjøring (java protesterer) Logisk feil Alt kjører, men resultatet er ikke i tråd med intensjonen (om man merker det eller ikke)

Skill mellom opprinnelig feil og følgefeil Ved kompileringsfeil Første feilmelding er typisk den opprinnelige I tillegg får man ofte mange etterfølgende feil, fordi kompilatoren kommer av sporet Ved kjøretidsfeil En ugyldig tilstand kan skyldes en feil tidligere i koden enn der den merkes Ved logiske feil Man kan få uønsket oppførsel ett sted, fordi man ikke tok høyde for bestemte utfall et annet sted

Bli kjent med programmeringsfeil Bruk tid på å fremprovosere flest mulig feil, og legg de bak øret! Senker frustrasjonsnivået betraktelig når feil oppstår Feilretting går mye raskere når man gjenkjenner feilmelding og hva den kan skyldes Det er mye å lære av å se hva som ikke fungerer

Vanlige kompileringsfeil {u2kompileringsfeil1.java- u2kompileringsfeil9.java: eksempler på ulike kompileringsfeil

Vanlige kjøretidsfeil {u2kjoretidsfeil1.java.. u2kjoretidsfeil2.java: eksempler på ulike kjøretidsfeil

Logiske feil {u2logiskfeil1.java.. u2logiskfeil2.java: eksempler på logiske feil

Ulike praktikaliteter (av begrenset betydning)

Forkortinger rundt variabler Flere variabler kan deklareres på samme linje: int tall1, tall2, alder; Man kan deklarere og gi verdi på samme linje: int alder = 6; Forenklet skrivemåte for å oppdatere verdi: alder += 5 (samme som: alder = alder+5) alder++ (samme som: alder = alder+1)

Vær oppmerksom på Multiplikasjon må alltid angis eksplisitt med * Feil: int prod = 10 a; Riktig: int prod = 10 * a; = er noe helt annet enn == = brukes for å sette verdien til en variabel == brukes for å sammenligne to verdier

Tegnsett En datamaskin representerer hver bokstav med en bestemt tallkode Det finnes ulike standarder for hvilke tall som representerer hvilke bokstaver En klassisk standard er ASCII som støtter 128 tegn En moderne standard er Unicode (UTF-8) som støtter over 100 000 tegn, og brukes på IFIs maskiner Tegnsett er mer intrikat enn man kunne tro, og kan være kilde til mye krøll

Tegnsett Bruk av æ,ø,å i Java kan føre til krøll: Bruk av æ,ø,å i variabelnavn o.l. i Java fører fort til krøll Bruk av æ,ø,å i kommentarer eller tekststrenger burde gå bra, men kan også føre til problemer

Tegnsett Vi skal lære programmering, ikke skrive stil, og taper ingenting på å være uten æ,ø,å: Skriv "forste aaret laerte jeg mye" i kodefilen, og fokuser på det viktige i faget!

God programmeringsskikk Sørg for at programmet er oversiktlig å lese Legg inn blanke linjer der det øker lesbarheten Legg inn kommentarer der noe bør forklares (//)

God programmeringsskikk (forts.) Velg beskrivende navn fremfor korte navn: antallstudenter er oftest bedre enn as og i hvertfall ikke minvariabel for samme formål

God programmeringsskikk (forts.) Bruk store bokstaver for å skille de ulike delene av variabelnavnet (camelcase) ikke: antallstudenter men: antallstudenter

Kontrollflyt

Hvordan et program presist utføres Hvordan (i hvilken rekkefølge) utføres operasjoner helt detaljert på én enkelt linje Hvordan flyter (helt presist) et program fra linje til linje

Hva skjer innad på en alder = 6; veldig rett frem.. linje? alder = alder + 3;

Hva skjer innad på en alder = 6; veldig rett frem.. linje? alder = alder + 3; Gjør ferdig høyresida for likhetstegnet først

Hva skjer innad på en alder = 6; veldig rett frem.. 6 linje? alder = alder + 3; Gjør ferdig høyresida for likhetstegnet først Alle verdier er på høyresida slik de var før denne linja (alder er altså 6)

Hva skjer innad på en alder = 6; veldig rett frem.. 6 9 alder = alder + 3; linje? Gjør ferdig høyresida for likhetstegnet først Alle verdier er på høyresida slik de var før denne linja (alder er altså 6) Regner ut 6+3 og får 9

Hva skjer innad på en alder = 6; veldig rett frem.. 6 9 alder = alder + 3; linje? Gjør ferdig høyresida for likhetstegnet først Alle verdier er på høyresida slik de var før denne linja (alder er altså 6) Regner ut 6+3 og får 9 Setter til slutt verdien 9 inn i alder

Videre om evaluering av uttrykk Visse operasjoner gjøres alltid før andre Java gjør f.eks.uansett ganging før plussing Følgende gir altså samme resultat 33: 15 33 alder = 5 * 3 + 18

Videre om evaluering av uttrykk Visse operasjoner gjøres alltid før andre Java gjør f.eks.uansett ganging før plussing Følgende gir altså samme resultat 33: 15 33 alder = 5 * 3 + 18 alder = 18 + 5 * 3

Videre om evaluering av uttrykk Visse operasjoner gjøres alltid før andre Java gjør f.eks.uansett ganging før plussing Følgende gir altså samme resultat 33: 15 33 alder = 5 * 3 + 18 alder = 18 + 5 * 3 Blir tydeligere med paranteser, bruk det! alder = (5 * 3) + 18

Videre om evaluering av uttrykk (forts.) For noen formål må man uansett ha paranteser 5 15 33 alder = (3+2) * 3 + 18

Videre om evaluering av uttrykk (forts.) For noen formål må man uansett ha paranteser 5 15 33 alder = (3+2) * 3 + 18 Og for å gjøre det samme tydeligere - nøsting av paranteser er definitivt lovlig: alder = ((3+2) * 3) + 18

Videre om evaluering av uttrykk (forts.) For noen formål må man uansett ha paranteser 5 15 33 alder = (3+2) * 3 + 18 Og for å gjøre det samme tydeligere - nøsting av paranteser er definitivt lovlig: alder = ((3+2) * 3) + 18 I praksis er det ikke tall man putter inn på slik måte, men variabler: alder = ((bachelor+master) * antallfagfelt) + barndom

En liten oppgave om variable og uttrykk (fra eksamen 2014)

Boolske uttrykk Vi så et eksempel forrige uke: if (alder>=3 && alder<6) {println("liten") && betyr "og" - altså må begge deler være sant Man kan også sjekke enten eller med if (alder<18 alder>66) {println("halv pris")

Boolske uttrykk (forts) Utrykk kan naturligvis inneholde ulike variabler if (alder>80 dagertiltermin<10) {println("ta mitt sete!") Og så kan utrykkene være nøstede if ( (dagertiltermin>180 && tidspunkt=="morgen") (alder<6 && antallkilometerbiltur>30) ) {println("du er sikkert kvalm!")

Boolske verdier Vi har tidligere i kurset lært to typer verdier: Typen int som representerer hele tall Typen String som representerer tekst boolean er en tredje type verdi Typen boolean representerer noe som er sant eller ikke sant Den har altså kun to mulige verdier: true og false

Formell definisjon av if if (boolean expression) { Statements1 else { Statements2 Et boolsk uttrykk (boolean expression) kan ha to mulige boolske verdier: Om uttrykket har verdien true kjøres Statements1 Om uttrykket har verdien false kjøres Statements2

Boolske variable Boolske verdier kan holdes på av variabler (på samme måte som for tall og tekst) betalerhalvpris = alder<18 alder>66;

Boolske variable Boolske verdier kan holdes på av variabler (på samme måte som for tall og tekst) Slike variable er av typen boolean boolean betalerhalvpris; betalerhalvpris = alder<18 alder>66;

Boolske variable Boolske verdier kan holdes på av variabler (på samme måte som for tall og tekst) Slike variable er av typen boolean En boolsk variabel kan brukes alle steder hvor man kan bruke en boolsk verdi boolean betalerhalvpris; betalerhalvpris = alder<18 alder>66 ; if (betalerhalvpris) {...

Hvordan et program flyter fra linje til linje Dette er temmelig enkelt for det vi har lært frem til nå (endrer seg om en halvtime..) Hovedregel: Gjør ferdig en linje, deretter gå til linjen nedenfor Ved en if-setning Dersom det som testes er sant: gå til første linje i blokken ellers: hopp over blokken

Hvordan et program flyter fra linje til linje Ved en if-else-setning Dersom det som testes er sant: gå til første linje i blokken etter if ellers: gå til første linje i blokken etter else

Etterlign kjøring, med blyant og papir Gjør manuelt det samme som datamaskinen ville gjort, linje for linje Kan gjøres i hodet, men enklere på papir (print ut koden og bruk blyant) Vær presis - her er hver detalj viktig

Følge et program, linje for linje public class u2omkrets{ public static void main(string[] args) { int lengde=7; int bredde=4; int omkrets; if (lengde==bredde){ omkrets = 4*lengde; else { omkrets = (2*lengde) + (2*bredde); System.out.println("Omkrets: " + omkrets) ;

Følge et program, linje for linje public class u2omkrets{ public static void main(string[] args) { int lengde=7; int bredde=4; int omkrets; if ( 7 ==bredde){ omkrets = 4*lengde; else { omkrets = (2*lengde) + (2*bredde); System.out.println("Omkrets: " + omkrets) ;

Følge et program, linje for linje public class u2omkrets{ public static void main(string[] args) { int lengde=7; int bredde=4; int omkrets; if ( 7 == 4 ){ omkrets = 4*lengde; else { omkrets = (2*lengde) + (2*bredde); System.out.println("Omkrets: " + omkrets) ;

Følge et program, linje for linje public class u2omkrets{ public static void main(string[] args) { int lengde=7; int bredde=4; int omkrets; if ( 7 == 4 ){ omkrets = 4*lengde; else { omkrets = (2* 7 ) + (2*bredde); System.out.println("Omkrets: " + omkrets) ;

Følge et program, linje for linje public class u2omkrets{ public static void main(string[] args) { int lengde=7; int bredde=4; int omkrets; if ( 7 == 4 ){ omkrets = 4*lengde; else { omkrets = ( 14 ) + (2*bredde); System.out.println("Omkrets: " + omkrets) ;

Følge et program, linje for linje public class u2omkrets{ public static void main(string[] args) { int lengde=7; int bredde=4; int omkrets; if ( 7 == 4 ){ omkrets = 4*lengde; else { omkrets = ( 14 ) + (2* 4 ); System.out.println("Omkrets: " + omkrets) ;

Følge et program, linje for linje public class u2omkrets{ public static void main(string[] args) { int lengde=7; int bredde=4; int omkrets; if ( 7 == 4 ){ omkrets = 4*lengde; else { omkrets = ( 14 ) + ( 8 ); System.out.println("Omkrets: " + omkrets) ;

Følge et program, linje for linje public class u2omkrets{ public static void main(string[] args) { int lengde=7; int bredde=4; int omkrets; if ( 7 == 4 ){ omkrets = 4*lengde; else { omkrets = 22 ; System.out.println("Omkrets: " + omkrets) ;

Følge et program, linje for linje public class u2omkrets{ public static void main(string[] args) { int lengde=7; int bredde=4; int omkrets; if ( 7 == 4 ){ omkrets = 4*lengde; else { omkrets = 22 ; System.out.println("Omkrets: " + 22 ) ;

Metoder

Vi trenger mer struktur! Vi har frem til nå skrevet programmer linje for linje nedover under "static void main" Realistiske program er imidlertid ofte tusener eller millioner av linjer! Ingen kan ha oversikt over en flat liste på mange tusen (eller millioner) av linjer Et første nivå av strukturering er metode: en navngitt blokk med kodelinjer, som kan kalles og tilpasses

Ulike versjoner av metoder Metoder kommer i ulike versjoner, av gradvis økende kompleksitet Vi vil introdusere de involverte aspektene stegvis Først i dag: Statisk void-metode uten parametre Også i dag: Statisk void-metode med parametre Om to uker: Statisk metode med returverdi Litt senere i høst: Instans-metode (OO)

Hvordan kan en metode se ut public static void mittmetodenavn(){ kodelinje1; kodelinje2;... For å kjøre alle kodelinjene i metoden (kalle metoden): mittmetodenavn();

Eksempel på metode: kodeblokk public class u2voidmetodeutenparameter1{ static void gibeskjed(){ System.out.println("Jeg sier dette bare en gang!"); System.out.println("Da var jeg ferdig!"); public static void main(string[] args) { gibeskjed();

Eksempel på metode: navn public class u2voidmetodeutenparameter1{ static void gibeskjed(){ System.out.println("Jeg sier dette bare en gang!"); System.out.println("Da var jeg ferdig!"); public static void main(string[] args) { gibeskjed();

Eksempel på metode: kall public class u2voidmetodeutenparameter1{ static void gibeskjed(){ System.out.println("Jeg sier dette bare en gang!"); System.out.println("Da var jeg ferdig!"); public static void main(string[] args) { gibeskjed();

Eksempel på metode: ramme rundt kallet public class u2voidmetodeutenparameter1{ static void gibeskjed(){ System.out.println("Jeg sier dette bare en gang!"); System.out.println("Da var jeg ferdig!"); public static void main(string[] args) { gibeskjed();

Eksempel på metode: ramme rundt hele koden public class u2voidmetodeutenparameter1{ static void gibeskjed(){ System.out.println("Jeg sier dette bare en gang!"); System.out.println("Da var jeg ferdig!"); public static void main(string[] args) { gibeskjed();

Kontrollflyt og metoder public class u2voidmetodeutenparameter{ static void gibeskjed(){ System.out.println("Jeg sier dette bare en gang!"); static void kallvidere(){ System.out.println("Her kommer det"); gibeskjed(); System.out.println("Og en gang til"); gibeskjed(); System.out.println("Det var ikke mye"); public static void main(string[] args) { System.out.println("Hei, jeg vil si deg noe"); kallvidere(); System.out.println("Fikk du det likevel med deg?");

Kontrollflyt og metoder public class u2voidmetodeutenparameter{ static void gibeskjed(){ System.out.println("Jeg sier dette bare en gang!"); static void kallvidere(){ System.out.println("Her kommer det"); gibeskjed(); System.out.println("Og en gang til"); gibeskjed(); System.out.println("Det var ikke mye"); public static void main(string[] args) { System.out.println("Hei, jeg vil si deg noe"); kallvidere(); System.out.println("Fikk du det likevel med deg?");

Kontrollflyt og metoder public class u2voidmetodeutenparameter{ static void gibeskjed(){ System.out.println("Jeg sier dette bare en gang!"); static void kallvidere(){ System.out.println("Her kommer det"); gibeskjed(); System.out.println("Og en gang til"); gibeskjed(); System.out.println("Det var ikke mye"); public static void main(string[] args) { System.out.println("Hei, jeg vil si deg noe"); kallvidere(); System.out.println("Fikk du det likevel med deg?");

Statisk void-metode med parametre Void-metoden vi så på tidligere gjorde alltid eksakt det samme når den ble kallet Det er sjelden av nytte! For å være nytig må en slik metode kunne tilpasses Det gjør vi ved å sende inn parametre

Din første metode med parametre println er en metode hvor utfallet tilpasses! System.out.println(String text): skriver verdien i text til skjermen Variabelen text er en parameter Verdien vi gir inn (hallo verden) når vi kaller println er et argument Parameter og argument er to sider av det samme Parameter: variabel i metode som tar i mot verdi Argument: verdi sendt inn når metode kalles

Metoder håndterer også redundans Man har ofte behov for (omtrent) samme funksjonalitet ulike steder i en kode Man ønsker da ikke å duplisere koden Minsker oversiktlighet av kode Endringer og rettinger må utføres mange steder Man samler i stedet funksjonaliteten i en metode og kaller metoden der den trengs Dersom det er noe variasjon i hva man trenger, representerer man det som varierer med en parameter

Metode med parametre {u2voidmetodeparameter1.javau2voidmetodeparameter4.java

Oppsummering Feil kan fanges opp ved kompilering, ved kjøring, eller bare gi uønsket resultat Å kjenne til vanlige feilmeldinger senker frustrasjon når feil uunngåelig oppstår Programkode kjøres på en presist definert måte innad i en linje, og fra linje til linje Å leke debugger med blyant og papir er nyttig! Metoder strukturerer kode og unngår redundans Kan tilpasses med parametre