...et bon appétit !(et ben voilà tu m'as donné faim
)
...et bon appétit !(et ben voilà tu m'as donné faim
)
Avec vos conseils et aides, voila ce que j'ai réalisé:
Si vous avez des conseils pour améliorer un peu n'hésitez pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70 <body> <script type="text/javascript" > <!-- function calculatrice() { var resultat; var nombre1; var nombre2; var type; type = saisieSigne(); nombre1 = saisie(); nombre2 = saisie2(); function saisieSigne(){ return signe = prompt("Quel type d'operation voulez-vous faire ? (+,-,*,/)"); } function saisie(){ nb1 = parseInt(prompt("Saisissez le premier nombre.","nombre")); return nb1; } function saisie2(){ nb2 = parseInt(prompt("Saisissez le premier nombre.","nombre")); return nb2; } if (type == "+"){ function addition(nb1,nb2) { res = nb1 + nb2; return res; } resultat = addition(nombre1,nombre2); } else if (type == "-"){ function soustraction(nb1,nb2) { res = nb1 - nb2; return res; } resultat = soustraction(nombre1, nombre2); } else if (type == "*"){ function multiplication(nb1,nb2) { res = nb1 * nb2; return res; } resultat = multiplication(nombre1, nombre2); } else if (type == "/") { function division(nb1,nb2) { res = nb1 / nb2; return res; } resultat = division(nombre1, nombre2); } function affichage(res) { alert("Resultat : "+res); } affichage(resultat); } //--> </script> <br /><br /><br /><br /> <center><input type="submit" value="calculatrice" onclick="calculatrice();"/></center> </body>
Pareil ^^ tu utilises ici des variables globales inutiles...
Je proposerais quelques simplifications :
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 function calculatrice() { var resultat; var nombre1; var nombre2; var type; type = saisieSigne(); nombre1 = saisie("Saisissez le premier nombre."); nombre2 = saisie("Saisissez le deuxième nombre."); function saisieSigne() { return prompt("Quel type d'operation voulez-vous faire ? (+,-,*,/)"); } function saisie(message) { return parseInt(prompt(message, "nombre"), 10); } function addition(nb1,nb2) { return (nb1 + nb2); } function soustraction(nb1,nb2) { return (nb1 - nb2); } function multiplication(nb1,nb2) { return (nb1 * nb2); } function division(nb1,nb2) { return (nb1 / nb2); } function affichage(res) { alert("Resultat : "+res); } switch (type) { case "+": resultat = addition(nombre1, nombre2); case "-": resultat = soustraction(nombre1, nombre2); case "*": resultat = multiplication(nombre1, nombre2); case "/": resultat = division(nombre1, nombre2); } affichage(resultat); }
J'avoue qu'il y en aurait pas malEnvoyé par Tora21
Tout d'abord, l'intérêt d'une fonction est de pouvoir exécuter plusieurs fois la même portion de code. Donc faire une fonction
c'est bien, mais à quoi sert la fonction saisie2() qui fait exactement la même chose ???
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 function saisie(){ nb1 = parseInt(prompt("Saisissez le premier nombre.","nombre")); return nb1; }
Ensuite, vu que tu peux passer des arguments à une fonction, saisieSigne() devient aussi superfétatoire ()
Et surtout, définir une fonction qui refait exactement la même chose qu'une méthode native, c'est bien mais pas top
Ensuite, une variable sert à stocker une donnée, mais stocker une donnée qui va être détruite à l'instruction suivante a ma foi assez peu d'intérêt, donc saisie() peut facilement devenir
Autre chose
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 function saisie(texte, valeur){ return prompt(texte, valeur); }
A part le plaisir masochiste de se faire de noeuds à l'encéphale, je comprends difficilement l'intérêt de définir une fonction puis une variable qui récupèrera le résultat de la fonction pour le retourner immédiatement...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 if (type == "+"){ function addition(nb1,nb2){ res = nb1 + nb2; return res; } resultat = addition(nombre1,nombre2); }
Ne crois-tu pas que
est plus simple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if (type == "+"){ return nb1 + nb2; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 function calculatrice(){ var nb1 = prompt('Entrez le premier nombre', 'Nombre'); var nb2 = prompt('Entrez le deuxième nombre', 'Nombre'); switch(prompt('Quelle opération ?', '+,-,*,/'){ case '+': alert(parseInt(nb1, 10) + parseInt(nb2, 10)); return; case '-': alert(nb1 - nb2); return; case '*': alert(nb1 * nb2); return; case '/': alert(nb1 / nb2); return; default: alert('Erreur de saisie...'); calculatrice(); } }
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum
Ne nous arrêtons pas en si bon chemin
edit : le code ci-dessus constitue un retour en arrière par rapport aux remarques de bon sens de Bovino, mais j'étais pris dans mon élan de factorisation, indépendamment du pragmatisme général (le "pour quoi faire ?")
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 function calculatrice() { var resultat, type, nombre1, nombre2; var Operations = { "+": function (nb1,nb2) { return (nb1 + nb2); }, "-": function (nb1,nb2) { return (nb1 - nb2); }, "*": function (nb1,nb2) { return (nb1 * nb2); }, "/": function (nb1,nb2) { return (nb1 / nb2); } }; function saisieSigne() { return prompt("Quel type d'operation voulez-vous faire ? (+,-,*,/)"); } function saisie(message) { return parseInt(prompt(message, "nombre"), 10); } function affichage(res) { alert("Resultat : " + res); } type = saisieSigne(); nombre1 = saisie("Saisissez le premier nombre."); nombre2 = saisie("Saisissez le deuxième nombre."); resultat = Operations[type](nombre1, nombre2); affichage(resultat); }
Etant donné que l'idée du post initial était d'apprendre à manipuler les fonctions... ^^
--- (ci-dessous, supplément hors-sujet)
Attends ne me dis rien... Vous faites une sorte de loto avec des copains et tu devais essayer de placer celui-là quelque part...Envoyé par Bovino
Bravo c'était pas évident ^^
Code JS : Sélectionner tout - Visualiser dans une fenêtre à part eval(nombre1 + type + nombre2);![]()
La FAQ JavaScript – Les cours JavaScript
Touche F12 = la console → l’outil indispensable pour développer en JavaScript !
Eh ben je vois que ça vous motive mon post.
J'ai encore amélioré mon code avec des petits morceaux de RomainVALERI et Bovino. Mais la ton dernier affichage de code Romain ma donné mal à la tête je pense que je dois encore m'enfoncer un peu plus dans le javascript avant d'attaquer les réductions de code.
Partager