• # En Fortran

    Posté par (site web personnel, Mastodon) . En réponse au journal Is return the new goto ?. Évalué à 10. Dernière modification le 26 janvier 2024 à 21:44.

    En Fortran, je peux écrire :

    program essai
     implicit none
     print *, pouet(1)
     print *, pouet(0)
    contains
     integer function pouet(i)
     integer, intent(in) :: i
     pouet = 2
     if (i == 0) then
     pouet = -1
     else
     pouet = i
     end if
     end function
    end program essai
    

    La sortie se fait au niveau du end function et ça m'affiche :
    1
    -1

    On peut éventuellement mettre un return après l'instruction pouet = -1 pour sortir plus vite de la fonction.

    On peut aussi utiliser result pour indiquer quelle variable contiendra le résultat :

     integer function pouet(i) result(r)
     integer, intent(in) :: i
     r = 2
     if (i == 0) then
     r = -1
     return
     else
     r = i
     end if
     end function
    

    Attention, il ne faut pas déclarer la variable si on a indiqué le type de donnée devant function. La variable r est automatiquement de type integer comme indiqué en début de ligne.