Bei einer Funktion hast du immer eine Rückgabe, die du für gewöhnlich mit dem Schlüsselwort "return" einleitest.
int make(int n) {
if (n > 10) return 1;
else if (n < 10) return 2;
else return -1;
}
int make(int n) {
int value = -1;
if (n > 10) value = 1;
else if (n < 10) value = 2;
return value;
}
Beim ersten Beispiel sieht du, dass mehrmals "return" aufgerufen wird, beim Zweiten nur einmal. Genau das bedeutet single-exit-principle: dass du GENAU eine Anweisung hast, mit der du die Funktion verlässt und nicht mehrere, wie im ersten Beispiel.
Mit "throw" könnte die Funktion vorzeitig terminieren, d. h. zusammen mit einem "return" am Ende, hast du dann insgesamt 2 exit-points.
int make(int n) {
if (n < 0) throw new IllegalArgumentException(); // exit point
else return 1; // exit point
}
Mit "goto" könntest du in deinem Progamm einfach an eine beliebige Stelle "springen", hast damit also auch wieder mehrere exit-points. Beides verstößt gegen das SINGLE-exit-principle!
Schüler, Punkte: 455
Achso, danke dir!!!
─ sayuri 18.01.2021 um 09:21