История изменений
Исправление Tark, (текущая версия) :
Перечитай просто пример на фортране который.
CALL CHECK(A, B, *10, *20, C)
...
10 ...
20 ...
SUBROUTINE CHECK(X, Y, *, *, C)
...
50 IF (X) 60, 70, 80
60 RETURN
70 RETURN 1
80 RETURN 2
END
Здесь как ты можешь заметить используется SUBROUTINE, а не FUNCTION, а SUBROUTINE не возвращает результата. Здесь звездочками(«*») обозначены альтернативные точки выхода. И при вызове RETURN 1, оно передает управление строку под номером 10, а при вызове RETURN 2, оно передает управление на строку под номером 20.
Но наслаждение не будет полным, если не знать, что точек входа в функцию тоже могло быть несколько, http://h21007.www2.hp.com/portal/download/files/unprot/fortran/docs/lrm/lrm01... и точки выхода с точками входа могли быть перемешаны.
Исходная версия Tark, :
Перечитай просто пример на фортране который.
<code>
CALL CHECK(A, B, *10, *20, C)
...
10 ...
20 ...
SUBROUTINE CHECK(X, Y, *, *, C)
...
50 IF (X) 60, 70, 80
60 RETURN
70 RETURN 1
80 RETURN 2
END
</code>
Здесь как ты можешь заметить используется SUBROUTINE, а не FUNCTION, а SUBROUTINE не возвращает результата. Здесь звездочками(«*») обозначены альтернативные точки выхода. И при вызове RETURN 1, оно передает управление строку под номером 10, а при вызове RETURN 2, оно передает управление на строку под номером 20.
Но наслаждение не будет полным, если не знать, что точек входа в функцию тоже могло быть несколько, http://h21007.www2.hp.com/portal/download/files/unprot/fortran/docs/lrm/lrm01... и точки выхода с точками входа могли быть перемешаны.