Java Reference
In-Depth Information
while ((anzahl > 0) && vornFrei()) {
vor();
anzahl--;
schritte++;
}
if (!richtung) {
linksUm();
linksUm();
}
return schritte;
}
void main() {
drehen(true, false);
// Fehler
drehen(8);
// Fehler
if (felderVor(8, true) < 8) {
// Fehler
linksUm();
}
}
In der ersten Anweisung der main-Prozedur wird die Funktion
drehen
mit zwei aktuellen Parame-
tern aufgerufen, obwohl die Funktion nur einen einzelnen formalen Parameter besitzt. Die zweite
Anweisung der main-Prozedur enthält ein weiteres Beispiel für einen fehlerhaften Aufruf der Funk-
tion
drehen
, da der Typ des aktuellen Parameters (arithmetischer Ausdruck) nicht konform ist zum
Typ des formalen Parameters (Typ
boolean
). Auch der Funktionsaufruf der Funktion
felderVor
in der Bedingung der if-Anweisung in der main-Prozedur produziert eine Fehlermeldung des Com-
pilers, da der erste aktuelle Parameter vom Typ
int
und der zweite aktuelle Parameter vom Typ
boolean
sind, der erste formale Parameter der Funktion jedoch vom Typ
boolean
und der zweite
formale Parameter vom Typ
int
sind.
16.2.5 Funktionsaufrufe als aktuelle Parameter
Aktuelle Parameter sind Ausdrücke, die vor dem Aufruf einer Funktion berechnet werden. Auch
Funktionen selbst liefern im Allgemeinen Werte, d.h. ihr Aufruf stellt also einen speziellen Ausdruck
dar. Aus diesem Grund können auch Funktionsaufrufe in der aktuellen Parameterliste auftreten, wie
das folgende korrekte Beispiel illustriert:
/*
* liefere als Funktionswert die Summe der Ganzen Zahlen
*von1bisn
*/
int summe(int n) {
int ergebnis = 0;
int zaehler = 1;
while (zaehler <= n) {
ergebnis += zaehler;
zaehler++;
}


































































































Search WWH ::

Custom Search