L3 économie-finance
Université Paris 8
15 octobre 2024
2 outils pour contrôler l’évaluation :
if
Deux types de conditions if
:
Exemple :
if
renvoie un résultat, il est donc possible d’assigner le résultat :
Quand else
n’est pas explicitement renseigné mais la condition est fausse, if
renvoie NULL
.
TRUE
ou FALSE
?if
vectoriel : ifelse()
Dans le cas où vous avez besoin de conditions vectorielles, il faut utiliser ifelse()
:
switch()
On peut remplacer ceci :
Par ceci :
Le dernier composant de switch()
doit renvoyer une erreur, sinon les conditions non vérifiées renverront NULL
, ce qui est rarement le comportement désiré. C’est à ça que sert stop()
.
for
La boucle la plus simple est la boucle for
:
Exemple :
On peut interrompre l’exécution d’une boucle for
de manière anticipée :
next
sort de l’itération actuelle ;break
sort de la boucle for
en entier.Quand on ne sait pas les valeurs sur lesquelles on itère, on utilise :
while(condition) action
: l’action
est effectuée tant que la condition
est TRUE
repeat(action)
: répète l’action
indéfiniment (tant que break
n’apparaît pas)for
est moins flexible que while
qui est moins flexible que repeat
, mais il vaut mieux utiliser la version la moins flexible.
Le grand danger des boucles while
et repeat
est la boucle infinie : une boucle qui n’est jamais interrompue, entraînant le plantage de l’ordinateur par manque de mémoire.
while
, mais pas for
Vous avez acheté une action au prix de 50€ et vous voulez la vendre dès que le prix dépasse les 55€ ou descend sous les 45€. On fait l’hypothèse que le prix change chaque jour de manière aléatoire de +1 ou -1.
# Prix d'origine
prix <- 50
# L'objet jour nous sert à compter le nombre de jours
jour <- 1
# Conditions utilisées dans while, remarquez le &&
while ((45 <= prix) && (prix <= 55)){
# Evolution du prix de +1 ou -1 chaque jour
prix <- prix + sample(c(-1, 1), 1)
# Compte le nombre de jours et ajoute un jour supplémentaire
jour = jour + 1
}
print(paste0("Nous avons gardé l'action ",jour," jours avant de la vendre, au prix de ", prix, "€."))
[1] "Nous avons gardé l'action 25 jours avant de la vendre, au prix de 44€."