Les structures alternatives (si alors)

Introduction

La plupart des algorithmes exécutent des actions différentes en fonction de l'état courant des variables. Prenons l'exemple d'un logiciel de comptabilité : lorsque une entrée est un débit le signe « moins » est affiché, et lorsque l'entrée est un crédit le signe « plus » est affiché. Le comportement à l'affichage est donc conditionné au type de l'opération, et c'est information que l'on peut imaginer trouver dans une variable. Il est donc nécessaire de pouvoir modifier le comportement du programme en fonction de la valeur d'une variable.

C'est là qu'interviennent les structures alternatives, qui sont présentent dans la plupart des langages de programmation, et qui permettent d'appliquer des concepts mathématiques et logiques simples. Ce module a pour objectif d'initier aux différents concepts que sont les comparaisons, les instructions conditionnelles et l'algèbre booléenne appliquées aux langages en général.

Comparer des éléments

Objectif

  • Savoir utiliser les opérateurs de comparaison.

Mise en situation

L'une des opérations les plus réalisées dans des programmes est la comparaison de deux éléments. Il existe différents opérateurs de comparaison, comme l'égalité ou non, la supériorité ou l'infériorité. Chaque comparaison doit être faite entre 2 éléments du même type, et produit un résultat qui est binaire : vrai ou faux. C'est ce que l'on appelle un booléen. Nous allons voir ici comment réaliser les opérations de comparaisons de base.

Définition

Les comparaisons de base sont :

  • l'égalité,

  • la différence,

  • la supériorité,

  • l'infériorité,

  • la supériorité stricte,

  • l'infériorité stricte.

Résultat d'une comparaison

En programmation, on retrouve ces mêmes comparaisons pour des nombres, des caractères, des phrases, etc. Les symboles de comparaison diffèrent cependant de l'écriture mathématique naturelle. De plus, les notations peuvent varier d'un langage à un autre.

Une comparaison produit un résultat : vrai ou faux (true ou false), appelé un booléen.

SyntaxeTester l'égalité

Le symbole == signifie « est égal à ». Il est bien distinct du simple = utilisé pour affecter une valeur à une variable.

Exemple

/** JavaScript: affiche true et false */
console.log(5 == 5)
console.log(5 == -5)
"""Python: affiche True et False."""
print(5 == 5)
print(5 == -5)

SyntaxeL'inégalité

L'opposé de == est != qui signifie « n'est pas égal à ».

Exemple

/** JavaScript: affiche true et false */
console.log('A' != 'B')
console.log('A' == 'B')
"""Python: affiche True et False."""
print('A' != 'B')
print('A' == 'A')

SyntaxeSupériorité et infériorité strictes

L'opérateur < signifie « est strictement inférieur à » et > signifie « est strictement supérieur à ».

Exemple

/** JavaScript: affiche true et false */
console.log(1 < 2)
console.log(5 > 5)
"""Python: affiche True et False."""
print(1 < 2)
print(5 > 2)

SyntaxeSupériorité et infériorité

L'opérateur <= signifie « est inférieur ou égal à » et >= signifie « est supérieur ou égal à ».

Exemple

/** JavaScript: affiche true et false */
console.log(1 <= 1)
console.log(4 >= 5)
"""Python: affiche True et False."""
print(1 <= 1)
print(4 >= 5)

Utilisation

Les opérandes d'une comparaison, c'est-à-dire les valeurs sur lesquelles elle s'applique, peuvent être des valeurs simples mais également des variables et des expressions.

Exemple

/** JavaScript : affiche true */
let amount = 6 * 6
console.log(amount == 9 * 2 * 2)
"""Python : affiche True."""
amount = 6 * 6
print(amount == 9 * 2 * 2)

Attention

En JavaScript, on préfère la comparaison stricte (===) à la comparaison simple (==) présentée ici. La comparaison stricte vérifie l'égalité de type en plus de l'égalité de valeur.

À retenir

Les opérateurs de comparaisons permettent de comparer deux opérandes, qu'elles soient des variables ou des expressions.

Appliquer la notion

Quel résultat produit le programme suivant ?

console.log(1 == 1.0)

Le programme affiche true. Même si la représentation initiale est différente, l'entier 1 représente la même valeur que le flottant 1.0.

On dispose d'un programme incomplet et on veut qu'il affiche le résultat de la comparaison « âge supérieur ou égal à 18 ». Compléter l'instruction console.log pour cela.

let age = 21
console.log()
let age = 21
console.log(age >= 18)

Comparer le type des éléments

Objectifs

  • Comprendre la différence entre comparaison simple et comparaison stricte ;

  • Savoir utiliser les comparaisons strictes.

Mise en situation

Lorsque l'on compare des éléments entre eux, le résultat dépend non seulement de leur valeur mais également de leur type.

RappelType

Le type d'un élément est en quelque sorte sa nature : il peut être un nombre (entier, décimal, etc.), un caractère, une phrase, etc.

Le type est en partie identifiable selon la notation utilisée :

  • On met des apostrophes pour les caractères mais rien pour les nombres.

  • Les nombres décimaux possèdent un point et pas les entiers.

Comparaison de type

Même si les opérateurs de comparaison sont parfois identiques dans les langages, la comparaison n'est pas toujours exactement la même.

En Python, les éléments doivent avoir la même valeur et être de même type pour être égaux, alors qu'en JavaScript il existe des opérateurs spéciaux permettant d'indiquer que la comparaison est stricte, c'est à dire qu'elle doit prendre en compte le type des opérandes.

Exemple

La deuxième ligne montre la différence entre le JavaScript et le Python. Pour le JavaScript, seule la valeur est importante : que l'opérande soit une chaîne de caractères ou un nombre ne fait pas de différence. En revanche pour le Python, même si les valeurs sont équivalentes, un nombre et une chaîne ne sont pas égaux.

/** JavaScript : affiche true et true */
console.log(91 == 91)
console.log('91' == 91)
"""Python : affiche true et false."""
print(91 == 91)
print('91' == 91)

MéthodeÉgalité stricte

Pour JavaScript, qui différencie l'égalité de l'égalité stricte, l'opérateur d'égalité stricte est === et signifie « est égal et de même type que ».

/** JavaScript: affiche true et false */
console.log('7' == 7)
console.log('7' === 7)

MéthodeInégalité stricte

De même, l'inégalité stricte existe et se note !==, autrement dit « est de type et/ou de valeur différent de ».

/** JavaScript: affiche false et true */
console.log('7' != 7)
console.log('7' !== 7)

Attention

Les comparaisons strictes sont à préférer dans un code en JavaScript : leur utilisation fait partie des bonnes pratiques.

À retenir

Les langages ne gèrent pas les comparaisons de la même manière et il faut faire attention au type des opérandes.

Appliquer la notion

Quel résultat produit le programme ?

console.log(78 !== '78')

Le programme affiche true : en effet, les deux valeurs sont équivalentes, mais ne sont pas du même type. L'opérateur de comparaison stricte détermine donc que ces deux valeurs sont différentes.

Quelle propriété des opérandes est regardée par les opérateurs strictes au contraire des opérateurs classiques ?

Le type des opérandes est également comparé par les opérateurs strictes.

Instruction conditionnelle

Objectif

  • Savoir utiliser les instructions conditionnelles.

Mise en situation

Avant d'exécuter des instructions, il est parfois nécessaire de vérifier certaines conditions.

Instruction conditionnelle

Pour utiliser des conditions dans un programme, on utilise les instructions conditionnelles. Combinées aux opérateurs de comparaison, elles permettent de tester des conditions avant de continuer le programme.

DéfinitionInstruction if

L'instruction if permet d'exécuter une instruction seulement si une condition donnée est vraie. Elle requiert :

  • Le mot clé if.

  • La condition en question.

  • Le bloc d'instructions à exécuter si la condition est vraie.

Algorithmiquement, c'est l'instruction if équivaut à : « Si condition vraie alors faire ... ».

Exemple

/** JavaScript : affiche "Suzy est dans..." */
const name = 'Suzy'
if (name[0] > 'M') {
  console.log('Suzy est dans la seconde moitié de l\'alphabet')
}
"""Python : affiche "Suzy est dans...."."""
name = 'Suzy'
if name[0] > 'M':
  print('Suzy est dans la seconde moitié de l\'alphabet')

À retenir

L'instruction if, suivie d'une condition s'évaluant en un booléen, permet à des instructions de n'être exécutées que si une condition est d'abord respectée.

Appliquer la notion

Quel résultat renvoie la condition de l'instruction if ? Le bloc d'instruction est-il exécuté ?

if (5 + 3 === 53) {
  console.log('Monty Python')
}

La condition vaut false et le bloc est ignoré. Une addition de deux chiffres ne permet pas de les concaténer.

Par quel(s) opérateur(s) pourrait-on remplacer « === » pour avoir le résultat inverse dans l'exemple précédent, c'est à dire une comparaison vraie ?

<, <= ou != .

Instructions conditionnelles alternatives

Objectif

  • Savoir enrichir une instruction conditionnelle avec des alternatives.

Mise en situation

L'instruction if peut être complétée par autant d'alternatives que nécessaire dans le cas où la condition est fausse.

Si... alors si... sinon...

L'instruction if va souvent de pair avec le else. Ce dernier permet de ne pas faire se succéder des blocs if inutilement et d'offrir une alternative au premier bloc.

En effet, un bloc else n'est exécuté que si la condition du bloc if n'est pas remplie, tandis que les conditions des blocs if simples sont systématiquement évaluées.

MéthodeInstruction else

L'instruction else est le « sinon » de l'instruction conditionnelle. Si la première condition n'est pas remplie et que le premier bloc est par conséquent ignoré, il est possible d'exécuter un autre bloc d'instructions alternatif. Le else est ignoré si la première condition est remplie.

Cela équivaut à dire : « Si condition vraie alors faire ... Sinon faire ... ».

Exemple

/** JavaScript : condition fausse, affiche 'Un Vodka-Martini' */
if (7 === '007') {
  console.log('...Bond, James Bond')
} else {
  console.log('Un Vodka-Martini')
}
"""Python : condition fausse, affiche 'Un Vodka-Martini'."""
if 7 == '007':
  print('...Bond, James Bond')
else:
  print('Un Vodka-Martini')

Il n'est pas obligatoire de se limiter à une seule alternative : une instruction conditionnelle peut contenir plusieurs else if à la suite permettant d'enchaîner les conditions jusqu'à en remplir une. Dès qu'une condition est vraie, les suivantes sont ignorées.

Exemple

/** JavaScript : affiche "Plutôt grand" */
const height = 180
if (height < 150) {
  console.log('Plutôt petit')
} else if (height < 180) {
  console.log('Plutôt moyen')
} else {
  console.log('Plutôt grand')
}
"""Python : affiche "Plutôt grand"."""
height = 180
if height < 150:
  print('Plutôt petit')
elif height < 180:
  print('Plutôt moyen')
else:
  print('Plutôt grand')

Remarque

Selon les langages, on peut retrouver plusieurs manières d'écrire l'instruction else if. En JavaScript, on utilise simplement else suivit d'un nouveau if, tandis qu'en Python la syntaxe est raccourcie en elif (contraction de else et if).

Imbrication

Il est possible d'écrire une structure conditionnelle à l'intérieur d'une autre structure conditionnelle, pour simplifier le code et éviter d'évaluer plusieurs fois la même condition. Cette imbrication peut être réalisée un nombre quelconque de fois, même s'il est préférable d'éviter une imbrication trop profonde.

ExempleImbrication

const number = 42
if(number > 10) {
  if (number < 30) {
    console.log('Nombre entre 10 et 30')
  }
  else if (number < 50) {
    console.log('Nombre entre 30 et 50')
  }
  else {
    console.log('Nombre supérieur ou égal à 50')
  }
}
else {
  console.log('Nombre inférieur ou égal à 10')
}

L'imbrication des structures conditionnelles permet ici d'éviter de répéter plusieurs fois la condition number > 10 : à l'intérieur du bloc, on a déjà la garantie que number est supérieur à 10.

Complément

En JavaScript, l'instruction switch est une autre syntaxe pour exprimer des alternatives.

À retenir

Un bloc if peut être prolongé par un bloc else pour exprimer une alternative par défaut, et il est même possible d'enchaîner plusieurs blocs else if pour exprimer plusieurs alternatives conditionnelles.

Appliquer la notion

Ajouter une alternative au programme suivant pour effectuer un affichage pour les nombres strictement inférieurs à 100 mais pas inférieurs à 10.

let number = 99
if (number < 10) {
  console.log(number, 'strictement inférieur à 10')
}

Un second if ne suffit pas, car un nombre tel que 9 déclencherait deux affichages.

let number = 99
if (number < 10) {
  console.log(number, 'strictement inférieur à 10')
} else if (number < 100) {
  console.log(number, 'strictement inférieur à 100')
}

On utilise la structure else if, qui permet d'effectuer le second affichage seulement si la première condition est fausse et la deuxième condition est vraie.

Ajouter une alternative par défaut affichant simplement le numéro.

Cette alternative doit s'exécuter uniquement si les deux conditions précédentes sont fausses.

let number = 99
if (number < 10) {
  console.log(number, 'strictement inférieur à 10')
} else if (number < 100) {
  console.log(number, 'strictement inférieur à 100')
} else {
  console.log(number)
}

Algèbre booléenne

Objectif

  • Apprendre à utiliser l'algèbre booléenne.

Mise en situation

L'algèbre de Boole permet d'utiliser des raisonnements logiques avec des opérations de comparaison.

Il est possible de combiner des valeurs de vérité (true et false) pour constituer des conditions plus complexes.

Trois fonctions logiques existent :

  • la conjonction (et),

  • la disjonction (ou),

  • la négation (non),

Comme les comparaisons produisent des booléens, il est possible de combiner directement deux comparaisons d'éléments avec une fonction logique et, afin de ne valider la condition globale que si les deux comparaisons sont vraies simultanément.

SyntaxeConjonction

La conjonction permet de représenter le « et » logique : pour qu'elle soit vraie, tous les éléments qui la composent doivent aussi être vrais.

On utilise « && » en JavaScript et « and » en Python.

En langue naturelle, on peut traduire simplement une conjonction par : condition1 && condition2 => « condition1 vraie ET condition2 vraie »

Exemple

/** JavaScript: affiche true et false */
console.log(true && true)
console.log(false && true)
"""Python : affiche True et False."""
print(True and True)
print(False and True)

SyntaxeDisjonction

La disjonction permet de représenter le « ou » logique : pour qu'elle soit vraie, au moins un de ses éléments doit être vrai.

On utilise || en JavaScript et or en Python.

En langue naturelle, on peut traduire simplement une disjonction: condition1 || condition2 => « condition1 vraie OU condition2 vraie »

Exemple

/** JavaScript: affiche true */
console.log(false || true || false)
"""Python : affiche True."""
print(False or True or False)

AttentionIl ne faut pas confondre les ET et les OU

Photo prise sur la devanture d'un magasin en 2020 pendant la crise COVID-19

SyntaxeNégation

La négation permet de représenter le « non » logique : la valeur de l'expression est simplement inversée de vraie à fausse ou inversement.

On utilise « ! » en JavaScript et « not » en Python.

En langue naturelle, on peut traduire simplement une négation : !condition => « condition "non" vraie (fausse) »

Exemple

/** JavaScript: affiche true */
console.log(!false && true)
"""Python : affiche True."""
print(not False and True)

MéthodeUtilisation des parenthèses

Pour s'assurer que l'expression produit bien le résultat attendu, il faut prêter attention à l'ordre des parenthèses : comme dans les expressions mathématiques classiques, elles ont des effets sur l'interprétation de l'expression. Elles servent aussi à faciliter leur lecture.

Exemple

/** JavaScript: affiche false et true */
console.log(!true && false)
console.log(!(true && false))
"""Python: affiche False et True."""
print(not True and False)
print(not(True and False))

À retenir

Les « et » et « ou » permettent de manipuler plusieurs conditions successives tandis que le « non » permet d'inverser la valeur de vérité.

Appliquer la notion

Compléter le code suivant pour afficher le résultat de la proposition logique suivante : « age est compris entre 18 et 70 ».

const age = 15

« compris entre 18 et 70 » peut s'interpréter comme : « plus grand que 18 et plus petit que 70 ».

const res = (age > 18) && (age < 70)
console.log(res)

On utilise le « ET » logique pour exprimer la combinaison des deux conditions.

Les parenthèses ne sont pas nécessaires, car les opérateurs booléens sont moins prioritaires que les opérateurs de comparaison, mais permettent d'améliorer la lisibilité.

Algèbre booléenne et instructions conditionnelles

Objectif

  • Utiliser les instructions conditionnelles avec l'algèbre booléenne.

Mise en situation

Les expressions logiques sont très utiles pour exprimer des conditions avec les structures conditionnelles.

Comme avec les expressions conditionnelles simples, les expressions utilisant des fonctions logiques telles que « et », « ou » et « non » permettent d'obtenir un résultat qui est vrai ou faux. Ces expressions sont donc utilisables comme conditions dans les instructions conditionnelles.

Elles sont également stockables dans des variables.

Exemple

/** JavaScript: affiche "Plus de place à ce prix" */
let availablePlace = true
let budget = 40
if (availablePlace && budget > 120) {
  console.log('1ère classe')
} else if (!availablePlace || budget < 60) {
  console.log('Plus de place à ce prix')
}
"""Python: affiche "Plus de place à ce prix"."""
availablePlace = True
budget = 40
if availablePlace and budget > 120:
  print('1ère classe')
elif not availablePlace or budget < 60:
  print('Plus de place à ce prix')

À retenir

Les opérateurs booléens permettent de construire des expressions avec plusieurs conditions en combinant leur résultat.

Appliquer la notion

Remplacer les « ... » par la condition suivante : « température comprise entre 10 inclus et 30 exclus ».

const temperature = 35
if (temperature < 0) {
  console.log(temperature, 'Gelées'
} else if (...) {
  console.log(temperature, 'Journée tempérée')
}
const temperature = 35
if (temperature < 0) {
  console.log(temperature, 'Gelées')
} else if (temperature >= 10 && temperature < 30) {
  console.log(temperature, 'Journée tempérée')
}

Ajouter l'état "Fortes chaleurs" quand la température est comprise entre 40° et 50° exclus et l'état "Inconnu" dans tous les autres cas.

const temperature = 35
if (temperature < 0) {
  console.log(temperature, 'Gelées')
} else if (temperature >= 10 && temperature < 30) {
  console.log(temperature, 'Journée tempérée')
} else if (temperature > 40 && temperature < 50) {
  console.log(temperature, 'Fortes chaleurs')
} else  {
  console.log(temperature, 'Inconnu')
}

Ajouter l'état "Température recherchée" quand la température est entre 5° et 9° inclus ou quand elle est de 21°.

const temperature = 35
if (temperature < 0) {
  console.log(temperature, 'Gelées')
} else if ((temperature >= 5 && temperature <= 9) || temperature === 21) {
  console.log(temperature, 'Température recherchée')
} else if (temperature >= 10 && temperature < 30) {
  console.log(temperature, 'Journée tempérée')
} else if (temperature > 40 && temperature < 50) {
  console.log(temperature, 'Fortes chaleurs')
} else  {
  console.log(temperature, 'Inconnu')
}

Quiz

Quiz - Culture

Quelle est la différence entre l'opérateur d'égalité et l'opérateur d'égalité stricte en JavaScript ?

L'opérateur stricte n'accepte pas les nombres décimaux.

L'opérateur stricte permet de comparer le type en plus de la valeur.

L'opérateur d'égalité stricte n'accepte pas les opérandes qui ne sont pas des variables.

En JavaScript, la valeur entière 2 est égale à la chaîne de caractères '2'.

Toujours

Jamais

Cela dépend de l'opérateur que l'on utilise

Quiz - Méthode

Quelles fonctions logiques sont utilisables en algèbre booléenne ?

ET

OU

NI

NOT

Une instruction conditionnelle :

est au minimum composée de if et else.

est au minimum composée de if et else if.

peut contenir un nombre illimité d'alternatives else if.

peut être imbriquée dans une autre instruction conditionnelle.

peut contenir plusieurs clauses else.

Quiz - Code

Quelle comparaison renvoie true en JavaScript ?

'10.0' == 10

'10.0' === 10

'10' == 10

10.0 === 10

Quelle(s) expression(s) tradui(sen)t en JavaScript la condition : « angle droit et côté1 et côté2 égaux » ?

angle = 90 && cote1 = cote2

angle == 90 and cote1 == cote2

angle === 90 && cote1 === cote2

angle == 90 || cote1 == cote2

angle == 90 && cote1 == cote2

Quiz - Culture

Quelle est la différence entre l'opérateur d'égalité et l'opérateur d'égalité stricte en JavaScript ?

L'opérateur stricte n'accepte pas les nombres décimaux.

L'opérateur stricte permet de comparer le type en plus de la valeur.

L'opérateur d'égalité stricte n'accepte pas les opérandes qui ne sont pas des variables.

En JavaScript, la valeur entière 2 est égale à la chaîne de caractères '2'.

Toujours

Jamais

Cela dépend de l'opérateur que l'on utilise

L'opérateur de comparaison simple == conclura à l'égalité, car le type de la variable n'est pas pris en compte, seules les valeurs sont examinées. L'opérateur de comparaison stricte === indiquera que les deux variables ne sont pas égales, car elles sont de type différent (number et string).

Quiz - Méthode

Quelles fonctions logiques sont utilisables en algèbre booléenne ?

ET

OU

NI

NOT

Une instruction conditionnelle :

est au minimum composée de if et else.

est au minimum composée de if et else if.

peut contenir un nombre illimité d'alternatives else if.

peut être imbriquée dans une autre instruction conditionnelle.

peut contenir plusieurs clauses else.

Une structure conditionnelle peut n'être composée que d'un simple if, sans alternatives.

En revanche, le nombre de else if est illimité, mais il ne peut y avoir qu'un seul else, exécuté si aucune des conditions n'est remplie.

Quiz - Code

Quelle comparaison renvoie true en JavaScript ?

'10.0' == 10

'10.0' === 10

'10' == 10

10.0 === 10

'10.0' == 10

L'opérateur de comparaison simple ne tient pas compte du type, mais compare uniquement les valeurs. Or 10.0 est équivalent à 10.

'10.0' === 10

'10' == 10

10.0 === 10

Les nombres entiers et les nombres flottants sont représentés par le même type, number, en JavaScript.

Quelle(s) expression(s) tradui(sen)t en JavaScript la condition : « angle droit et côté1 et côté2 égaux » ?

angle = 90 && cote1 = cote2

angle == 90 and cote1 == cote2

angle === 90 && cote1 === cote2

angle == 90 || cote1 == cote2

angle == 90 && cote1 == cote2

angle = 90 && cote1 = cote2

L'opérateur = est l'opérateur d'assignation, non de comparaison.

angle == 90 and cote1 == cote2

angle === 90 && cote1 === cote2

angle == 90 || cote1 == cote2

angle == 90 && cote1 == cote2

L'utilisation de l'opérateur de comparaison simple == ou de l'opérateur de comparaison stricte === fonctionnera dans les deux cas, mais il est préférable d'utiliser l'opérateur de comparaison stricte pour éviter les mauvaises surprises.

Défi final

On dispose du programme suivant :

const grade = 'A'
if (grade === 'A') {
  console.log('Mention exceptionnelle')
} else if (grade !== 'A' && grade !== 'B' && grade !== 'C' && grade !== 'D' && grade !== 'E' && grade !== 'F') {
  console.log('Pas de note')
}

Qu'affiche le programme si grade vaut 'A' ?

Mention exceptionnelle

Qu'affiche le programme si grade vaut 'C' ? Pourquoi ?

const grade = 'C'
if (grade === 'A') {
  console.log('Mention exceptionnelle')
} else if (grade !== 'A' && grade !== 'B' && grade !== 'C' && grade !== 'D' && grade !== 'E' && grade !== 'F') {
  console.log('Pas de note')
}

Il n'affiche rien, parce qu'aucune alternative n'existe pour indiquer quoi faire si une note n'est pas égale à A mais est néanmoins valide (entre A et F).

Ce code contient un test inutile, trouver lequel et le supprimer.

const grade = 'C'
if (grade === 'A') {
  console.log('Mention exceptionnelle')
} else if (grade !== 'A' && grade !== 'B' && grade !== 'C' && grade !== 'D' && grade !== 'E' && grade !== 'F') {
  console.log('Pas de note')
}

La clause else if contient un test qui est redondant avec le if.

const grade = 'C'
if (grade === 'A') {
  console.log('Mention exceptionnelle')
} else if (grade !== 'B' && grade !== 'C' && grade !== 'D' && grade !== 'E' && grade !== 'F') {
  console.log('Pas de note')
}

La vérification grade !== 'A' est inutile : en effet les conditions du else if ne seront évaluées que si grade n'est pas égal à A.

Améliorer le programme afin :

  • d'ajouter les mentions « Très bien » en cas de B et « Bien » en cas de C.

  • de mentionner « Admis » en cas de D ou de E.

Penser à supprimer les tests inutiles dans le dernier else if.

const grade = 'C'
if (grade === 'A') {
  console.log('Mention exceptionnelle')
} else if (grade === 'B') {
  console.log('Mention très bien')
} else if (grade === 'C') {
  console.log('Mention bien')
} else if (grade === 'D' || grade === 'E') {
  console.log('Admis')
} else if (grade !== 'F') {
  console.log('Pas de note')
}

On souhaite enfin ajouter l'information « Non admis » pour les notes F.

Ajouter ce cas et transformer le dernier else if en conséquence.

const grade = 'F'
if (grade === 'A') {
  console.log('Mention exceptionnelle')
} else if (grade === 'B') {
  console.log('Mention très bien')
} else if (grade === 'C') {
  console.log('Mention bien')
} else if (grade === 'D' || grade === 'E') {
  console.log('Admis')
} else if (grade === 'F') {
  console.log('Non admis')
} else {
  console.log('Pas de note')
}

Conclusion

Les instructions conditionnelles sont essentielles et sont utilisées dans tous les programmes. Elles se retrouvent à l'identique dans tout les principaux langages de programmation, moyennant quelques adaptations de syntaxe. Ces structures permettent de comparer différentes variables et d'exécuter du code en fonction du résultat de ces comparaisons. Grâce à l'algèbre de Boole, il est possible de créer des conditions complexes, et donc de maîtriser finement la logique de son algorithme.

Liste des raccourcis clavier

Liste des fonctions de navigation et leurs raccourcis clavier correspondant :

  • Bloc Suivant : flèche droite, flèche bas, barre espace, page suivante, touche N
  • Bloc Précédent : flèche gauche, flèche haut, retour arrière, page précédente, touche P
  • Diapositive Suivante : touche T
  • Diapositive Précédente : touche S
  • Retour accueil : touche Début
  • Menu : touche M
  • Revenir à l'accueil : touche H
  • Fermer zoom : touche Échap.