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