Föreläsning 3 ”METODER”

METODER

ME1453 – Introduktion till spelteknik
——————-
METHODS (METODER)
Strukturering av program

Upprepad användning av satser
–    Istället för att samma satser flera gånger så kan satsen skrivas i en metod som sedan anropas flera gånger
–    Detta leder till mer lätträttad kod och mer överskådlig sådan

EXEMPEL PÅ METODER

(Dåliga exempel pga de har fasta värden. Får ändra hela koden för att ändra 120kr.)
double inkllMoms()
{
double exclMoms = 120.0;
double inkl = exklMoms * (1 + 0.25);

return inkl;
}

Eller

double inklMoms()
{
double exklMoms = 120.0;
return exklMoms * (1 + 0.25);
}

EN METODS UPPBYGGNAD
En metodsdefinition beskriver hur en metod fungerar, vilka parametrar den behöver, vad den returnerar för typ av värde och vad den gör.

resultattyp funktionsnamn (parameterlista)
{
satser
}

Parameterlistan är en lissta med de formella parametrarnas typ och namn.
–    Varje parameter måste beskrivas med sin typ.

void MetodNamn()
{
satser;
}

int MetodNamn (int parameter)
{
satser;
return value;
}

EXEMPEL PÅ METOD
En metod blir mer flexibel (och användbar!) om den får sina värden via parametrar

double inklMoms (double exklMoms, double momsSats)
{
return exklMoms * (1 + momsSats);
}

METODANROP


Static void Main(String[] args)
{
const double MOMS = 0.25;
const doubel MATMOMS = 0.12;
double exkl1, exkl2, inkl1, inkl2;

exkl1 = double.Parse(Console.ReadLine());
exkl2 = double.Parse(Console.ReadLine());
inkl1 = InklMoms(exkl1, MOMS);        //kalla på metod
inkl2 = InklMoms(exkl2, MATMOMS);        //kalla på metod
Console.WriteLine(inkl1);
Console.WriteLine(inkl2);

return 0;
}

returtyp funktionsnamn (parameterlista)
{
deklarationer
satser
}

ÖVERLAGRING UTAV FUNKTIONER


int Sum(int nr1, int nr2)
{
return nr1+nr2;
}

double Sum (double nr1, double nr2)
{
return nr1 + nr2;
}

Samma funktionsnamn
Olika typ utav parametrar i parameterlistan och olika retur-typ.

return höjd > bredd ? höjd : bredd;
return krav ? true : false;

________________________________________

Programmet på texten under: WorkshopMonday