• 10 heures
  • Facile

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 23/04/2024

Définissez des conditions

Ce matin, Joe a décidé de passer vous voir. Au fur et à mesure de la discussion, Joe vous parle de son blé qui va apparemment très fort en ce moment.

Joe parle de ses épis de blé avec poésie
Joe parle de ses épis de blé avec poésie

Tout à coup, vous réalisez :

Mais Joe, voilà une nouvelle activité dont tu ne m'avais pas parlé ! Quand moissonnes-tu ?

Tous les débuts de mois.

Et qu'en rapportes-tu ?

En général 100 bottes de blé.

Que tu vends... ?

0,30 € l'unité.

Pendant qu'on y est, il y a d'autres choses ?

Oui, le 10 et le 20 de chaque mois, je tonds mes moutons. J'en récupère 30 pelotes de laine que je vends sur le marché à 1 €.

Nous voilà donc repartis avec de nouvelles informations pour améliorer notre programme !

Découvrez les conditions

Nous allons découvrir dans ce chapitre les conditions ! Et vous allez voir, c'est très facile !

Reprenons notre code :

for _ in 1...30 {
   // Joe nourrit les vaches
   money -= 4
   // Joe vend son lait
   money += 30 * 0.50
}

On aimerait bien rajouter les nouvelles rentrées d'argent de Joe. Mais à la différence des précédentes, elles n'ont pas lieu tous les jours :

  • 1er de chaque mois : il récupère 100 bottes de blé vendues 0,30 € l'unité.

  • 10 et 20 de chaque mois : il récupère 30 pelotes de laine vendues 1 € l'unité.

Nous aimerions donc pouvoir rajouter dans notre programme :

SI nous sommes le 1er:
   ajoute l'argent du blé
SI nous sommes le 10 ou le 20:
   ajoute l'argent de la laine
SINON :
   ajoute l'argent du lait

On peut faire ça en programmation. Et pour y arriver, nous allons découvrir un nouveau type !

Le booléen

Le booléen va bientôt s'ajouter à la liste des types que nous connaissons maintenant.

Je sais ! Il y a :

  • Int

  • Float

  • Double

  • String

  • Range

Bravo ! Vous me réjouissez ! Ajoutons donc maintenant le booléen.

Le booléen est le type le plus simple puisqu'il ne peut prendre que 2 valeurs :  true    ou  false  (vrai ou faux).

Par exemple :

var ceCoursEstExcellent = true
var lAuteurEstModeste = false

Le nom du type booléen est  Bool  en Swift. Donc pour déclarer un booléen, vous pouvez écrire :

var jeSuisUnBooleen: Bool

Et voilà, vous connaissez un type de plus !

Appréhendez les opérateurs

C'est le grand retour des opérateurs ! Eh oui, certains types ont le droit à des opérateurs. Rappelez-vous : on a vu les 4 basiques :  + - * /  pour les types  Int  , Double  et Float  . Le  +   pour concaténer des types  String  . Voyons ceux du  Bool  !

Opérateurs d'égalité

Il y en a 2 : ==  et  !=  . Ils permettent de vérifier si une expression est égale ou différente d'une autre. Par exemple, essayez les commandes suivantes dans le Playground :

2 == 2   // Playground affiche true
2 == 3   // Playground affiche false
4 != 4   // Playground affiche false
4 != 5   // Playground affiche true

2 est bien égal à 2, et 4 est bien différent de 5 ; donc ces opérations affichent  true  . Et inversement pour les deux autres cas.

Opérateurs de comparaison

Ce sont les opérateurs que l'on utilise pour comparer des nombres. Il y en a 4 :

  • <  Strictement inférieur

  • <=  Inférieur ou égal

  • >  Strictement supérieur

  • >=  Supérieur ou égal

Quelques exemples :

1 < 2  // True
1 < 1  // False
1 <= 1 // True
3 > 4  // False
5 > 4  // True
5 >= 4 // True

Opérateurs logiques

Ces opérateurs permettent de combiner des expressions. Il en existe 2 :

  • expression1 || expression2    : Renverra vrai si  expression1  est vraie OU si  expression2  est vraie.  ||  est l'opérateur OU.

  •  expression1 && expression2    : Renverra vrai si  expression1  ET  expression2  sont vraies.  &&  est l'opérateur ET.

Par exemple, testez les expressions suivantes dans le Playground :

true || false // Playground affiche true
true && false // Playground affiche false

On peut également combiner plus de 2 expressions. Comme pour les calculs, on peut utiliser des parenthèses pour gérer les priorités :

(true && false) || true // Affiche true

true && false   donne  false  . Il reste du coup   false || true   qui donne  true  .

Opérateur négation

L'opérateur négation, c'est le point d'exclamation  !  . Placé avant une expression, il en donne le résultat opposé. Par exemple :

!true // Affiche false

Pour vous familiariser avec les opérateurs, essayez de deviner les résultats des expressions suivantes :

!true && false
!(true && false)
4 < 3 || 4 >= 4
(!(1 == 2) || 3 != 3) && 35 > 34

Pour la correction, je vous laisse les copier dans votre Playground ! Mais cherchez d'abord les résultats par vous-même ! Le conseil, c'est de démarrer toujours par les expressions entre parenthèses.

Utilisez if / else

Bon c'est bien rigolo, les booléens et les opérateurs, mais ça sert à quoi ?

Pour y répondre, rappelons-nous notre objectif. Nous voulons transformer notre programme pour qu'il écrive ceci :

SI nous sommes le 1er:
   ajoute l'argent du blé
SI nous sommes le 10 ou le 20:
   ajoute l'argent de la laine
SINON :
   ajoute l'argent du lait

Il se trouve qu'on peut rajouter ces fameux SI  en programmation. C'est même la traduction littérale en anglais :  if  . Ce mot-clé s'utilise de la façon suivante :

if expression logique {
instruction1
instruction2
instruction3
etc.
}

Si l'  expression logique   est évaluée à true  , les instructions entre les accolades   {}  seront exécutées. Sinon elles seront ignorées.

Par exemple, essayez ceci :

if true {
   print("Je suis executé").
}

if false {
   print("Je suis ignoré")
}

Le Playground affiche dans la console "Je suis exécuté".

L'expression précédente peut être simplifiée avec le mot-clé  else  pour sinon. Cela donne :

if true {
   print("Je suis executé")
} else {
   print("Je suis ignoré")
}

On peut le lire de la façon suivante :

Si VRAI :
   Affiche "Je suis exécuté"
Sinon :
   Affiche "Je suis ignoré"

À vous de jouer

Le contenu de l’exercice 1 se trouve dans le dossier Github P2C2.1.

  1. Ouvrez un nouveau Playground Xcode.

  2. Copiez le contenu du fichier “main.swift” dans votre Playground.

  3. Suivez les instructions.

Et si je suis né en 1961 ? Je ne suis ni plus jeune, ni plus vieux !

En effet ! Parfois, on ne peut pas résumer une logique à seulement si / sinon. Parfois, on a besoin de plus de cas. C'est la raison pour laquelle on a inventé le   else if   . Il permet de rajouter une troisième condition qui se positionne obligatoirement entre la première et la dernière. Par exemple ici :

var maDateDeNaissance = 1992
var laDateDeNaissanceDeBarack = 1961

if maDateDeNaissance > laDateDeNaissanceDeBarack {
   // Ma date de naissance est après donc je suis plus jeune
   print("Je suis un jeune premier !")
} else if maDateDeNaissance == laDateDeNaissanceDeBarack {
   // Nos dates de naissance sont égales
   print("J'ai le même âge qu'Obama !")
} else {
   // Ma date de naissance est avant donc je suis plus âgé
   print("J'ai plus d'expérience qu'un président !")
}

Vous pouvez rajouter autant de   else if    que vous voulez, pour gérer autant de cas que vous le souhaitez.

Par exemple :

var name = "Pierre"
if name == "Pierre" {
   print("Salut Pierre, tu vas bien ?")
} else if name == "Joe" {
   print("Hey Joe, comment va Marguerite ?")
} else if name == "Jean" {
   print("Bonjour Monsieur Jean !")
} else {
   print("Je ne vous connais pas, désolé.")
}

Si le nom n'est ni  Pierre  ,  ni  Joe  , ni  Jean  , les instructions dans le   else  seront exécutées.

Avec tout ça, on va pouvoir compléter notre modèle de ferme ! Alors à vous de jouer. Transformez le contenu de notre boucle for avec ceci :

SI nous sommes le 1er :
   ajoute l'argent du blé
SI nous sommes le 10 ou le 20 :
   ajoute l'argent de la laine
SINON :
   ajoute l'argent du lait

Indice : Nommez une variable  day  (pour jour) dans votre boucle for.

Le contenu de l’exercice 2 se trouve dans le dossier Github P2C2.2.

  1. Ouvrez un nouveau Playground Xcode.

  2. Copiez le contenu du fichier “main.swift” dans votre Playground.

  3. Suivez les instructions.

Et voilà comment les conditions nous ont permis d'affiner notre modèle !

En résumé

  • Nous avons découvert un nouveau type :  Bool  pour booléen, qui ne peut prendre que 2 valeurs :  true  ou  false  .

  • Ce type a plusieurs opérateurs :

    • Pour créer des booléens :

      • ==

        égalité

        !=

        différence

        >

        Strictement supérieur

        >=

        Supérieur ou égal

        <

        Strictement inférieur

        <=

        Inférieur ou égal

      •  Pour combiner ou modifier des booléens :

        && 

        ET logique

        ||

        OU logique

        !

        Négation

      • La déclaration if  /  else if   / else  permet de gérer différentes conditions dans un programme. Sa syntaxe est la suivante :

if expressionLogique1 {
   // instructions
} else if expressionLogique2 {
   // instructions
} else {
   // instructions
}

Maintenant que vous savez poser vos conditions, je vous propose de devenir les maîtres des boucles while ! Ehhhhh c’est parti !

Exemple de certificat de réussite
Exemple de certificat de réussite