Problème de compréhension sur cette opération

Fermé
stefland Messages postés 3 Date d'inscription jeudi 24 novembre 2016 Statut Membre Dernière intervention 24 novembre 2016 - Modifié par stefland le 24/11/2016 à 12:14
stefland Messages postés 3 Date d'inscription jeudi 24 novembre 2016 Statut Membre Dernière intervention 24 novembre 2016 - 24 nov. 2016 à 13:01
Bonjour,

Auriez-vous l'amabilité de m'expliquer ce minuscule bout de code que je n'arrive malheureusement pas à comprendre :

function hi (a, b) {
return a * b;
}

function hello (a, b) {
return hi(a, b + 1);
}

hello(2, 2);

5 --> 6

Comme vous pouvez le constater, ma logique me conduit à répondre 5, mais en réalité c'est 6.
J'aimerais juste comprendre pourquoi.

Merci à vous.

1 réponse

stefland Messages postés 3 Date d'inscription jeudi 24 novembre 2016 Statut Membre Dernière intervention 24 novembre 2016 1
24 nov. 2016 à 12:59
Salut stefland,

Comme la question est si gentiment posée, je me permets donc de te répondre le plus clairement possible.

Tout simplement :

- le return hi(a, b +1); dans ta fonction hello récupère le résultat de la fonction hi

- hi = a x b donc 2 x 2 = 4

- Donc ta logique ta dit de faire 2 x 2 = 4 + 1 = 5

- c'est false

- regarde

- dans ta fonction hello, hi(a, b+1), on ajoute 1 à b, donc hello = hello(2,3)

- donc si hello(2,3); alors return hi (2x3)

- 6 et non 5

- j'espère que tu comprends maintenant mon cher stefland
1
stefland Messages postés 3 Date d'inscription jeudi 24 novembre 2016 Statut Membre Dernière intervention 24 novembre 2016 1
24 nov. 2016 à 13:01
Purée stefland c'est bien ça.
J’ai un pote qui s'appelle Ben qui m’a refilé l'astuce aussi.
En tt cas gg.
0