Les conditions

Voir la vidéo
Description Sommaire

Lorsque l'on souhaite écrire des algorithmes il est important d'être capable de tester si une valeur est bien celle attendue. On va donc découvrir maintenant les conditions.

Les conditions s'écrivent de la manière suivante :

if (<booleen>) {
    <code si vrai>
}

Si par exemple on souhaite afficher à l'utilisateur une phrase si un nombre est pair :

// % donne le reste de la division de $nombre par 2
if (nombre % 2 == 0) {
    console.log(`Bravo !`)
}

Il est aussi possible de mettre un code à exécuter si la condition n'est pas remplie :

if (<booleen>) {
    <code si vrai>
} else {
    <code si faux>
}

Enfin on est parfois amené à utiliser des conditions multiples :

if (<booleen>) {
    <code si vrai>
} else if (<booleen>) {
    <code>
} else {
    <code>
}

Opérateur de comparaison

Parfois on souhaitera tester si une variable est bien celle attendue, ou faire une condition plus complexe. Dans ce cas là il faudra utiliser les opérateurs de comparaison

a == b // a égale à b
a === b // a == b et a est de même "type" que b
a >= b // a supérieur OU égal à b
a > b   // a strictement supérieur à b
a <= b // a inférieur OU égal à b
a < b   // a strictement inférieur à b
a != b // a est différent de b
a !== b // a est strictement différent de b

On essaiera tant que possible d'éviter les == et != car ces comparaisons se basent sur une conversion implicite des types qui peut être surprenante.

'1' == 1 // true
'1' === 1 // false

Attention aussi lorsque l'on compare des objets, ils ne sont pas considérés comme égaux même si leurs propriétés sont identiques.

{a: 1} == {a: 1} // false
{} == {} // false
[] == [] // false
NaN == NaN // false

On pourra aussi utiliser les opérateurs booléens, qui nous permettront de combiner plusieurs conditions ensembles

// && ET
true && true // true
true && false // false
false && true // false
false && false // false

// || OU
true || true // true
true || false // true
false || true // true
false || false // false

// ! NON
!true // false
!false // true

Le switch / case

Le switch case permet d'effectuer une opération suivant la valeur que prendra une expression.

switch (expression) {
  case valeur1:
    // Instructions à exécuter lorsque le résultat
    // de l'expression correspond à valeur1
    instructions1
    break
  case valeur2:
    // Instructions à exécuter lorsque le résultat
    // de l'expression correspond à valeur2
    break
  default:
    // Instructions à exécuter lorsqu'aucune des valeurs
    // ne correspond 
    break
}

C'est une notation qui est plus spécifique que les conditions avec les if et else mais qui peut s'avérer plus simple à écrire dans certains cas spécifiques

Le ternaire

Le ternaire, ou opérateur conditionnel est un outil qui permet de racourcir une condition en une seule ligne

// condition ? <expression si vrai> : <expression si faux>
const age = 19
const phrase = "Je suis " + (age >= 18 ? "majeur" : "mineur")

Exercices

Système de recommandation

20:56 - Créer un système de recommandation qui conseille le bon film en fonction de l'âge de l'utilisateur

  • Si l'utilisateur a moins de 13 ans (13 ans inclu) on lui affichera "Lilo & Stitch"
  • Si l'utilisateur a plus de 13 ans et moins de 18 ans (strictement) on lui affichera "Matrix" (je sais c'est un peu jeune)
  • Si l'utilisateur a plus de 18 ans on lui affichera "Evil Dead"

On commencera avec le code suivant

const currentYear = 2022
const birthyear = prompt('Quel est votre année de naissance ?')
// Ecrire votre code ici, afficher le film à l'aide de console.log('votre réponse')
const currentYear = 2022
const birthyear = prompt('Quel est votre année de naissance ?')
const age = currentyear - birthyear
if (age <= 13) {
    console.log('Lilo & Stitch')
} else if (age < 18) {
    console.log('Matrix')
} else {
    console.log('Evil Dead')
}

Multiplication

25:40 - On souhaite créer une calculatrice simplifiée qui est capable de multiplier 2 nombres et de nous donner le signe du résultat. L'objectif est d'afficher nombre1 x nombre2 = resultat est positif

On commencera avec la base suivante

const a = prompt('Entrez un premier nombre')
const b = prompt('Entrez un second nombre')
const a = prompt('Entrez un premier nombre')
const b = prompt('Entrez un second nombre')
const result = a * b
let signe
if (isNaN(result)) {
    console.log(`Opération impossible: ${a}x${b}`)
} else {
    if (result >= 0) {
        signe = 'positif'
    } else {
        signe = 'négatif'
    }
    console.log(`${a}x${b}=${result} est ${signe}`)
}
Publié
Technologies utilisées
Auteur :
Grafikart
Partager