4. Methoden und Verzweigungen4.1 Methoden (Teil 1)Das einfachste Java-Analogon zu dem mathematischen Begriff einer reellen Funktion
wie Nehmen wir an, wir wollen eine Wertetabelle für die Funktion
static double f(double x){ return Math.sin(2*x)+Math.cos(x); }//Ende des Methodenblocks
Ein Javaprogramm, das eine Wertetabelle mit Hilfe eines Aufrufs dieser Methode erstellt, kann so aussehen: class Methode1{ static double f(double x){ return Math.sin(2*x)+Math.cos(x); }//Ende des Methodenblocks public static void main(String[] args){ double x=0; while (x<1) { System.out.println( "x="+x+" f(x)="+f(x)); x+=0.1; }//Ende while }//Ende main() }//Ende class Methode1 Zunächst wird die Methode Man achte darauf, wie im In obigem Beispiel war x sowohl ein Bezeichner für den Parameter der Methode f als auch für die Variable im main-Block, die als Parameter in f eingesetzt wird. Das muss nicht sein: class Methode1a{ static double f(double x){ return Math.sin(2*x)+Math.cos(x); }//Ende des Methodenblocks public static void main(String[] args){ double y=0; while (y<1) { System.out.println( "x="+y+" f(x)="+f(y)); y+=0.1; }//Ende while }//Ende main() }//Ende class Methode1a 4.2 Verzweigungen4.2.1 if, if - elseVerzweigungen erlauben die bedingte Ausführung von Anweisungen und sind damit unerlässlich für die Steuerung von Programmabläufen. Reelle Funktionen haben zuweilen einen eingeschränkten Definitionsbereich. So muss bei der Wurzelfunktion das Argument nichtnegativ sein, bei rationalen Funktionen darf der Nenner nicht verschwinden. Dies kann im Methodenblock realisiert werden:
Der if-Block umfasst mehr als eine Anweisung und muss
daher durch geschweifte Klammern eingeschlossen werden. Bei nur einer Anweisung
können diese Klammern fehlen. Die Syntax einer Der Compiler achtet bei einer Methode mit Rückgabewert streng darauf, dass
in jedem Fall ein Wert zurückgegeben wird. Wenn die Allgemein dienen Verzweigungen dazu, bestimmte Programmteile beim Eintreten gewisser Bedingungen, die erst zur Laufzeit bekannt sind, ausführen zu lassen. In Ergänzung mit else kann die Verzweigung variabler gehandhabt werden: //Methode2 static double f(double x){ if ((x>=0) & (x!=4)){ double y= 1/(Math.sqrt(x)-2); return y; }//Ende des if-Blocks else { System.out.println( "x="+x+" ist nicht im Definitionsbereich"); return Double.NaN; }//Ende else-Block }//Ende des Methodenblocks Die Syntax einer Ohne den Will man mehrere verschiedene Fälle abarbeiten (Mehrfachverzweigung), sollte man switch verwenden. 4.2.2 switch - caseUnter Umständen reichen aber reine wahr - falsch Bewertungen, wie bei In Abhängigkeit einer integer Variablen können beliebig viele verschiedene Fälle betrachtet werden. Betrachten wir einmal folgenden Fall: Sie wollen Ihre Ausgabe anpassen und den jeweiligen Wochentag ausgeben: //Methode3 int tag; switch (tag) { case 1 : System.out.println("Montag"); break; case 2 : System.out.println("Dienstag"); break; case 3 : System.out.println("Mittwoch"); break; case 4 : System.out.println("Donnerstag"); break; case 5 : System.out.println("Freitag"); break; case 6 : System.out.println("Samstag"); break; case 7 : System.out.println("Sonntag"); break; } // Ende switch Jeder Anweisungsblock sollte (muss nicht!) mit einem break; abgeschlossen werden. Das Wort bedeutet: geh an das Ende der Sollen mehrere Werte betrachtet werden, so können diese zusammengefasst werden: //Methode4 int tag; switch (tag) { case 1 : case 2 : case 3 : case 4 : case 5 : System.out.println("Werktag"); break; case 6 : case 7 : System.out.println("Wochenende"); break; } // Ende switch Auch hier wird die Bearbeitung der Bitte beachten Sie aber, dass Auswertungen oder Vergleiche wie z.B. Ein anderer, manchmal sehr nützlicher Bestandteil der
Wenn die 4.3 Methoden (Teil 2)Da Methoden ein zentraler Begriff auch des OOP ist, soll der erste Umgang mit ihnen sicherer werden. Zunächst ein Beispiel für eine Methode mit zwei Parametern und einem Rückgabewert - sämtlichst vom Typ
Diese Methode Es gibt auch Methoden ohne Rückgabewert wie die Methode
Weiter mit Methoden (Teil 3).
|
Impressum | 2009-03-15, wwwmath (WL) |