Les
embranchements conditionnels
Le sommaire :
Un embranchement
conditionnel est une direction que va prendre l’exécution du programme selon la
valeur d’une variable, ou si une condition est vraie.
Il existe deux
possibilités, le If et le Switch.
Le If permet
d’exécuter un traitement si une condition ou un groupe de conditions est vrai.
Le switch permet de
choisir un traitement selon la valeur d’une variable.
Voici en quelque
sorte la logique du If :
Si la condition est
vraie, alors faire ce traitement, sinon, faire un autre traitement.
Une première
syntaxe :
if (Condition)
{ Traitement ;
}
Ici, nous avons la
construction la plus simple du If.
La condition est
placée entre parenthèses, quant au traitement à réaliser, il est entre
accolades.
Vous devriez
constater d’ailleurs, que si l’expression est vraie, le traitement est réalisé,
sinon, il ne se passe rien. L’exécution du programme continue son chemin en
ignorant le traitement placé entre accolades.
Un exemple :
<html>
<head>
<title> bonjour </title>
</head>
<body>
<?php
$Age = 7;
$Nom = "Pascal";
if ($Age<10)
{ // l'age est
inférieur à 10
echo $Nom.", tu dois toujours être à
l'école primaire !"; } ?>
</body>
</html>
Ici, si Pascal à
moins de 10 ans, le traitement est exécuté car l’expression est vraie, la
condition est donc remplie.
La deuxième
syntaxe :
if (expression)
{
Traitement1 ;}
else
{ Traitement2 ;
}
Donc, nous prévoyons
maintenant le cas de figure où l’expression est fausse.
Si l’expression est
vraie, on réalise un premier traitement, sinon, on réalise un autre traitement.
Voici un
exemple :
<html>
<head>
<title> bonjour </title>
</head>
<body>
<?php
$Age = 11;
$Nom = "Pascal";
if ($Age<10)
{ // l'age est
inférieur à 10
echo « $Nom, tu dois toujours être à
l'école primaire !"; }
Else
{ // l'age est égal
ou supérieur à 10
echo « $Nom, si tu as bien bossé tu n'es
plus en primaire !"; } ?>
</body>
</html>
dans cet exemple,
l’expression est fausse puisque Pascal à plus de 10 ans, c’est donc le
traitement du Else qui est exécuté.
Une troisième
syntaxe :
Nous pouvons
imbriquer des If dans des If !
if (expression)
{ if (expression)
{
traitement1 ; }
else
{ Traitement2;
}}
else
{ if (expression)
{ traitement3; }
else
{ traitement4; }}
Vous devez
impérativement placer le if imbriqué à l’intérieur des accolades du if qui le
contient…
Le if imbriqué joue
donc le rôle de traitement pour le if qui le contient.
Voici un exemple
concret :
<html>
<head>
<title> les if imbriqués </title>
</head>
<body>
<?php
$Sexe = "femme";
$Age = 10;
if
($Sexe="femme")
{ // Traitement pour
les femmes
if ($Age<20)
{ echo "Tu es une jeune $Sexe de $Age
ans"; }
else
{ echo "Tu es une grande $Sexe de $Age
ans"; }}
else
{ // Traitement pour
les hommes
if ($Age<20)
{ echo "Tu es un jeune $Sexe de $Age
ans"; }
else
{ echo "Tu es un $Sexe mur de $Age
ans"; }} ?>
</body>
</html>
Dans les expressions
que vous vérifiez entre les parenthèses du If, vous devez impérativement
utiliser le « égal de comparaison » et non pas le « égal
d’affectation ».
Il faut donc saisir
un double égal.
Exemple :
if (variable ==
valeur)
{ traitement ;
}
Pour vérifier plusieurs
conditions simultanément, vous pouvez utiliser le « et » logique,
donc le « and », et le « ou »
logique, le « or ».
Le « and » oblige que toutes les expressions soient vraies.
Exemple :
If ($Age>= 18 and $Domicile==”PARIS”)
{ echo “Vous êtes un
parisien majeur » ; }
Pour que le
traitement soit réalisé, donc le echo, il faut impérativement que la valeur de
la variable $Age soit égale ou supérieure à 18, et que la valeur de la variable
$Domicile soit PARIS.
Si l’une des
conditions est fausse, le traitement ne sera pas exécuté…
Quant à l’opérateur
« or », il faut qu’au moins l’une des conditions soit vraie.
Exemple :
if ($Age>=18 or $PresenceParents== »oui »)
{ echo “Vous pouvez
entrer”; }
Ici, pour que echo
soit exécuter, il faut que l’une des deux conditions soit remplie. Soit l’age
est supérieur ou égal à 18, soit les parents sont présents.
Switch permet de choisir un traitement selon la
valeur d’une variable.
La syntaxe :
switch (variable) {
case valeur1 :
traitement1;
break;
case valeur2 :
traitement2;
break;
case valeur3 : traitement3;
break;
default : traitement4; }
Description :
Variable est la
variable pour laquelle nous devons déterminer un traitement selon sa valeur.
case permet de
traiter une valeur et le traitement qui en découle.
Default est le
traitement à réaliser si l’ensemble des valeurs précisées par les
« case » ne correspond pas à la valeur de la variable.
Voici un
exemple !
<html>
<head>
<title>L'embrenchement conditionnel Switch</title>
</head>
<body>
<?php
// on compte le
nombre de voyelles dans une phrase
$phrase = "Le
PHP est un langage très puissant";
// On initialise une
variable par voyelle afin de réaliser le comptage
$a = 0;
$e = 0;
$i = 0;
$o = 0;
$u = 0;
$y = 0;
// On initialise une
variable pour le comptage des caractères autres que les voyelles
$autres = 0;
// On initialise une
variable qui va contenir la taille de la phrase
// cette taille va
être utilisée pour déterminer le nombre d'itération dans la boucle FOR
$nbcar =
strlen($phrase);
// Création de la
boucle qui va permettre de traiter les caractères de la phrase un par un
for
($compteur=0;$compteur<$nbcar;$compteur++)
{ // Extraction du
caractère suivant
$lettre =
strtolower(substr($phrase,$compteur,1));
// Utilisation de Switch pour identifier le
caractère
switch ($lettre)
{ case
"a" : $a++;
break;
case
"e" : $e++;
break;
case
"i" : $i++;
break;
case
"o" : $o++;
break;
case
"u" : $u++;
break;
case
"y" : $y++;
break;
default : $autres++; }}
// affichage de la
phrase
echo
$phrase."<br>";
// affichage des
comptes !
echo "nombre de
A : $a<br>";
echo "nombre de
E : $e<br>";
echo "nombre de
I : $i<br>";
echo "nombre de
O : $o<br>";
echo "nombre de
U : $u<br>";
echo "nombre de
Y : $y<br>";
echo "nombre de
consonnes : $autres »; ?>
</body>
</html>
Philippe BOULANGER