"Return" c'est quoi?

Fermé
mmeeddoo Messages postés 7 Date d'inscription dimanche 2 août 2015 Statut Membre Dernière intervention 1 novembre 2015 - 26 sept. 2015 à 15:19
mmeeddoo Messages postés 7 Date d'inscription dimanche 2 août 2015 Statut Membre Dernière intervention 1 novembre 2015 - 26 sept. 2015 à 17:53
Salut!

Je suis débutant dans la programmation, je rame un max!
Je fais des exercices sur Codecademy (Ruby, HTML, Java...). Je comprend petit à petit et j'arrive à assimiler ce qu'on m'explique, les différents termes et leurs fonctions dans le code.

Mais il y a ce foutu "return"! C'est simple, je ne comprend absolument pas ce que c'est, ce qui fait et pourquoi! Il retourne ok mais quoi? Qu'est ce qu'il retourne et pourquoi? Ca semble pourtant simple pour tout le monde, mais moi là je bloque complet!

Si l'un d'entre vous pouvait essayer de me faire comprendre ce qu'est "return", le plus simplement du monde (si c'est possible! ^^) j'en serais très reconnaissant! :)

J'insiste sur le fait que je m'y connais autant en programmation que le pape en skateboard! ^^

2 réponses

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
26 sept. 2015 à 15:29
Bonjour,

Une fonction peut avoir des paramètre et donner un résultat.

Par exemple :

int somme(int x, int y) {
    return x+y;
}

(int x, int y)
sont les paramètres,
x+y
est le résultat (de type
int
), c'est ce que l'on retourne comme résultat.

Ainsi, on peut ensuite faire
s = somme(1,2);
avec 1 et 2 les valeurs associées à
x
et
y
, la fonction va retourner un résultat (3 ici) que l'on donne à
s
.
0
mmeeddoo Messages postés 7 Date d'inscription dimanche 2 août 2015 Statut Membre Dernière intervention 1 novembre 2015
26 sept. 2015 à 16:31
Avant tout merci de me répondre c'est cool! :)

Je crois comprendre.
Mais alors je vais poser la question autrement:

Pour rester dans ton exemple. Pourquoi utiliser return et pas console.log ou puts? Je ne comprend pas les différences entre ces termes en faite. Et donc pourquoi utiliser return et pas un autre.
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015 > mmeeddoo Messages postés 7 Date d'inscription dimanche 2 août 2015 Statut Membre Dernière intervention 1 novembre 2015
26 sept. 2015 à 17:03
puts
et
console.log
font tous les deux des affichages, c'est à dire écrire un résultat textuel destiné à être lu par un humain (ce qui est assez peu fréquent dans un monde où l'interface graphique est bien plus utilisée que les lignes de commandes).

return
est une instruction pour construire une fonction, et donc découper le code de manière cohérente. Leur but est donc de prendre des paramètres et donner un résultat qui sera ensuite réutilisé par le reste du programme. Si on faisait juste un affichage on ne pourrait pas combiner des résultats intermédiaires.

Exemple (bidon). Si tu faisais juste des affichages dans la fonction
somme
, sans renvoyer de résultat, tu ne pourrais pas faire ce genre de code :

a = somme(1, 2);
b = somme(3, 4);
c = somme(a, b);

En effet, si tu ne renvoies jamais de résultat,
a
et
b
n'auront aucune valeur puisque la fonction
somme
l'aura juste affiché. Alors certes tu auras un affichage de 3 et 7 qui sont les calculs intermédiaires, mais tu seras incapables de calculer
c
...
0
mmeeddoo Messages postés 7 Date d'inscription dimanche 2 août 2015 Statut Membre Dernière intervention 1 novembre 2015
26 sept. 2015 à 17:16
Ok ok je vois!

Alors petite question supplémentaire au passage si tu le veux bien! :)
Quel est la différence entre puts et console.log si tous les deux affichent le résultat?

Je me suis déjà plusieurs fois posé la question car dans les exercices de Codecademy, ils demandent d'utiliser l'un et des fois l'autre. Sans jamais nous dire pourquoi!
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
26 sept. 2015 à 17:36
Le return (parfois nommé autrement) existe dans la totalité des langages qui permettent de construire des fonctions. En soit il ne fait rien, c'est juste une manière d'écrire le renvoi du résultat.

console.log et puts en revanche sont des fonctionnalités d'affichages spécifiques à quelques langages de programmation et les différences entre les deux dépendront de quel langage on parle...
0
mmeeddoo Messages postés 7 Date d'inscription dimanche 2 août 2015 Statut Membre Dernière intervention 1 novembre 2015
Modifié par mmeeddoo le 26/09/2015 à 17:42
Ahah! Comme si ce n'était pas assez compliqué comme ça, il faut que ce soit différent d'un langage à un autre! ^^

Disons dans Ruby alors?
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015 > mmeeddoo Messages postés 7 Date d'inscription dimanche 2 août 2015 Statut Membre Dernière intervention 1 novembre 2015
26 sept. 2015 à 17:47
Je ne connais pas Ruby, mais quand je vais un peu fouiner sur Google je dirais que puts permet d'écrire un message sur le serveur, alors que console.log c'est la partie JavaScript qui affiche le message sur le client.
0
mmeeddoo Messages postés 7 Date d'inscription dimanche 2 août 2015 Statut Membre Dernière intervention 1 novembre 2015
26 sept. 2015 à 17:53
Mdr! Ok c'est donc là que mes capacités s'arrêtent: je décroche! ^^

Merci pour les réponses concernant le return en tout cas! :)
0