• 30 hours
  • Easy

Free online content available in this course.

course.header.alt.is_video

course.header.alt.is_certifying

Got it!

Last updated on 7/9/20

Définissez des conditions

Log in or subscribe for free to enjoy all this course has to offer!

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 vous explique la moisson
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 !

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 vends 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 à 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

C'est très simple, non ? ;)

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 !

Les opérateurs 

C'est le grand retour des opérateurs ! Et 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és

Il y en 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 vrai OU si  expression2  est vrai.  || est l'opérateur OU.

  •  expression1 && expression2  : Renverra vrai si  expression1  ET  expression2  sont vrais.  && 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

14906931642575_Exercice%20Banner.png

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 démarrer toujours par les expressions entre parenthèses.

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 executé"
Sinon :
Affiche "Je suis ignoré"

14906931642575_Exercice%20Banner.png

Entraînez-vous avec l'exercice suivant. Créez deux variables l'une avec votre année de naissance et l'autre avec celle de Barack Obama (1961). Comparez les et affichez : "Je suis un jeune premier !" si vous êtes plus jeune qu'Obama et "J'ai plus d'expérience qu'un président !" sinon. À vous de jouer !

// Ne trichez pas !
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 {
// Ma date de naissance est avant donc je suis plus âgé
print("J'ai plus d'expérience qu'un président !")
}

Super ! Je suis certain que vous avez réussi. Sinon regardez attentivement la correction et réessayez !

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

En effet ! Parfois, on ne 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 :

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 çà, on va pouvoir compléter notre modèle de ferme ! Alors à vous de jouer. Transformer 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.

// Pas de triche !
var money = 0.0
for day in 1...30 {
// Joe nourrit les vaches tous les jours
money -= 4
if day == 1 {
// Joe moissonne
money += 100 * 0.30
} else if day == 10 || day == 20 {
// Joe tonds les moutons
money += 30 * 1
} else {
// Joe vends son lait
money += 30 * 0.50
}
}
print("\(money)") // Affiche 375.0 €

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
    }

 

Example of certificate of achievement
Example of certificate of achievement