IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Exercice 1.2.1 : apprendre les structures conditionnelles JavaScript avec l'instruction "if. . .else"
Par Marc Autran

Le , par vermine

134PARTAGES

2  0 
Exercice 1.2.1 : Les structures conditionnelles avec l'instruction "if...else"
Apprendre le JavaScript avec l'aide de membres experts


Bonjour,

Nous sommes en train de mettre en place une série d'exercices pour apprendre le JavaScript et Node.js.

Autran, Gnuum et ABCIWEB ont participé à la rédaction de ce second exercice qui porte sur la structure conditionnelle if...else. L'exercice est accompagné d'indications théoriques et d'une solution. Bien entendu, cette solution n'est pas nécessairement unique.

  • Objectif : Manipuler les structures conditionnelles de type if...else.
  • Niveau : Facile
  • Exigence : Indispensable


Exercice 1.2.1 : Les structures conditionnelles avec l'instruction "if...else"

Vous pouvez ensuite discuter avec les auteurs des problèmes que vous avez rencontrés, de vos interrogations ainsi que de vos remarques ou conseils.

Découvrez également tous nos exercices JavaScript !

Courage !

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de touit
Membre du Club https://www.developpez.com
Le 02/05/2016 à 12:31
Bonjour,

Voici ma solution pour cet exercice :

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

var a = 2; 
var b = 3; 
var c = 2; 
  
if (a == b && b == c) { 
    console.log("Les 3 variables sont identiques.");  
} else { 
    if (b == c || a == c || a == b) { 
        console.log("2 des variables sont de valeurs égales."); 
    } else { 
        console.log("Les 3 variables sont différentes."); 
    } 
}
2  0 
Avatar de Gnuum
Membre expérimenté https://www.developpez.com
Le 14/05/2016 à 9:01
Oui bonne solution et proprement codée.

A noter que le JavaScript ne propose pas d'instruction elseif comme d'autre langages mais que l'on peut quand même aplatir la structure de cette manière:
Code javascript : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
'use strict';  
  
var a = 2;  
var b = 2;  
var c = 2;  
  
if (a === b && b === c) {  
    console.log("Les 3 variables sont identiques.");   
} else if (b === c || a === c || a === b) {  
    console.log("2 des variables sont de valeurs égales.");  
} else {  
    console.log("Les 3 variables sont différentes.");  
}
1  0 
Avatar de Beginner.
Membre expert https://www.developpez.com
Le 16/05/2016 à 22:31
Salut,

Curieusement je me suis un peu pris la tête malgré la simplicité apparente (c'était donc intéressant comme exercice), du coup j'ai deux solutions :

Ma première solution c'était celle-ci :

Code javascript : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
var a = 1, b = 3, c = 7; 
  
if (a === b) { 
    if (b === c) console.log("Les trois variables sont identiques"); 
    else console.log("deux des variables sont de valeurs égales (a et b)"); 
} 
else if (a !== c) { 
    if (b !== c) console.log("Les trois variables sont différentes"); 
    else console.log("deux des variables sont de valeurs égales (b et c)"); 
} 
else console.log("deux des variables sont de valeurs égales (a et c)");

C'est un peu plus long (pas forcément moins rapide) car je précise quelles sont les deux variables qui sont de valeurs égales...

Mais en fait l'exercice étant moins exigeant (il ne demande pas cette précision) j'ai aussi fait sans cette précision :

Code javascript : Sélectionner tout
1
2
3
4
5
var a = 1, b = 3, c = 7; 
  
if (a === b && b === c) console.log("Les trois variables sont identiques"); 
    else if (a !== c && b !== c && a !== b) console.log("Les trois variables sont différentes"); 
           else console.log("deux des variables sont de valeurs égales");

Je vais regarder la solution maintenant...
1  0 
Avatar de Gnuum
Membre expérimenté https://www.developpez.com
Le 18/05/2016 à 10:44
Tes solutions sont bonnes.

Je sais qu'on a souvent envie d'en faire plus et cela peut-être une bonne pratique dans le travail si on ne rentre pas dans le surengineering (prévoir à l'avance des choses qui coûte beaucoup de temps de dev mais qui ont peu de chance de servir un jour).
En revanche, si tu fais des concours ou tests techniques, le respect stricte des consignes est plutôt à privilégier car c'est souvent l'un des critère d'évaluation.
Dans notre cas, ce n'est pas forcément important mais la solution 2 rentre plus dans ce cadre.

En ce qui concerne ton code, les indentations devant le else if et else ne sont pas nécessaires voire plutôt mauvaises. Bien que ce soit possible de ne pas mettre d'accolades dans le cas où une seule instruction doit être exécutée si une condition est validée, cette possibilité est très peu utilisée pour plusieurs raisons:

  • uniformité du visuel
  • évolution plus simple du code lié
  • diff plus compréhensible si rajout de ligne
1  0 
Avatar de autran
Rédacteur https://www.developpez.com
Le 02/05/2016 à 19:31
Parfait Touit
Juste un détail, comme les 3 variables sont du même type primitif numérique tu peux faire un test d'égalité stricte a===b
0  0 
Avatar de Beginner.
Membre expert https://www.developpez.com
Le 18/05/2016 à 18:14
Merci.

Oui pour l'indentation c'est une habitude qui me vient d'autres langages... Mais c'est vrai que lorsque je lance une indentation automatique ces indentations sont supprimées...
0  0