Untitled
user_6919294
pascal
a year ago
2.0 kB
7
Indexable
Użycie Exit w funkcjach z typami złożonymi W przypadku funkcji zwracających złożone typy danych, takie jak rekordy, klasy czy dynamiczne tablice, użycie Exit również jest możliwe: type TPoint = record X: Integer; Y: Integer; end; function UtworzPunkt(X, Y: Integer): TPoint; begin Result.X := X; Result.Y := Y; Exit(Result); // Zwracamy rekord end; Użycie Exit w funkcjach z wyjątkami Jeśli w trakcie działania funkcji może wystąpić wyjątek, można użyć Exit do wcześniejszego zakończenia funkcji po odpowiednim obsłużeniu wyjątku: function BezpieczneDzielenie(a, b: Integer): Double; begin try if b = 0 then raise Exception.Create('Dzielenie przez zero!'); Exit(a / b); except on E: Exception do begin WriteLn('Błąd: ', E.Message); Exit(0); // Zwracamy domyślną wartość w przypadku błędu end; end; end; Funkcje z typami referencyjnymi W przypadku typów referencyjnych, takich jak obiekty i klasy, Exit może być używane do zwrócenia instancji obiektu: type TPerson = class Name: string; Age: Integer; end; function CreatePerson(const AName: string; AAge: Integer): TPerson; begin Result := TPerson.Create; Result.Name := AName; Result.Age := AAge; Exit(Result); // Zwracamy obiekt end; Przykład praktyczny Rozważmy bardziej złożony przykład, w którym Exit jest używane do zwracania wartości w różnych sytuacjach: type TStudent = record Name: string; Score: Integer; end; function CalculateGrade(Student: TStudent): Char; begin if Student.Score >= 90 then Exit('A') else if Student.Score >= 80 then Exit('B') else if Student.Score >= 70 then Exit('C') else if Student.Score >= 60 then Exit('D') else Exit('F'); end; var Student: TStudent; Grade: Char; begin Student.Name := 'Jan Kowalski'; Student.Score := 85; Grade := CalculateGrade(Student); WriteLn(Student.Name, ' otrzymuje ocenę: ', Grade); end.
Editor is loading...
Leave a Comment