超シンプルな再帰処理のサンプルです。Fortran90ではrecursiveをつける必要があります。C言語とC++は再帰の方法に違いはありませんが、念のため。
recursion.f90
program main implicit none integer :: i = 0 call recursion(i) end program main recursive subroutine recursion(param) integer, intent(inout) :: param if ( param < 10 ) then param = param + 1 write(*,'(a, i5)') "param = ", param call recursion(param) endif end subroutine recursion
recursion.c
#include <stdio.h> void recursion(int param) { if( param < 10 ) { param += 1; printf("%s%5d\n", "param = ", param); return recursion(param); } } main(void) { int i = 0; recursion(i); }
main.cpp
#include <iostream> #include <iomanip> void recursion(int param) { if( param < 10 ) { param += 1; std::cout << "param = "; std::cout << std::setw(5) << param << "\n"; return recursion(param); } } int main() { int i = 0; recursion(i); return 0; }