Syntax Klass Data Variabler I/O Iteration Selektion Villkor Funktion

Java-syntax

Funktioner i Java

I språket finns många klasser med färdigskriven kod som vi kan använda oss av
För att t.ex. skriva ut text på skärmen använder vi funktionen

System.out.println( "textrad att skriva ut");

Funktionen heter println() och definieras av System.out, (den klass koden är skriven i).
Om vi vill skriva egna funktioner deklarerar vi dem ungefär som en variabel:

	public static datatyp funktionsnamn( eventuella parametrar)
	{
            här skrivs de satser som ska utföras vid funktionsanrop.
	}

        


Ex: En funktion som skriver ut en välkomsthälsning till den vars namn skickats med.

public static void hälsaVälkommen( String namn)
{
System.out.println( "Hej, person " + namn);
}

För att köra funktionen skriver vi t.ex. hälsaVälkommen("liisa");



Ex: En funktion som ger oss det minsta av två tal.

public static int min( int a, int b)
{

if( a < b) {
    return a;
} else {
    return b;
}
}

För att köra funktionen skriver vi t.ex. int x= min( 17, 42);



Demonstration av funktionsanrop


Parametrar

Parametrar är data som måste skickas med för att funktionen ska fungera.
Exempel: Funktionen println() har en String som parameter – den textsnutt som ska skrivas ut.

Om ingen radbrytning önskas efter utskriften, används funktionen print():
System.out.print( "text utan radbrytning");

(Funktionen println() kan också användas för att skriva ut andra datatyper, som heltal och decimaltal, då Java tillåter flera funktioner att ha samma namn, bara parametrarna är olika .)



Mer exempel:

Klassen Math ger oss många matematiska funktioner, bl.a. för trigonometri:

double Math.sin( double radianer)
double Math.cos( double radianer)
double Math.atan2( double y, double x)

Funktionerna heter sin, cos och atan2.
De två första har en parameter: ett decimaltal som anger vinkeln i radianer.
Funktikonen atan2 har två parametrar: katetrarna i en rätvinklig triangel.

Funktionerna returnerar ett decimaltal, (kateterlängder och en vinkel i radianer).
Användning:

Om vi vet vinkeln och längden
får vi sidlängderna
double x= 100* Math.cos( 3.14/6);
double y= 100* Math.sin( 3.14/6);

(Vinkeln är här c.a. 30 grader, eller 3.14/6 radianer).

Om vi kan sidlängderna
får vi vinkeln med inversen av tangens:
double vinkel= Math.atan2( 10,10);