« Programmation C++/Les structures de contrôles » : différence entre les versions

Contenu supprimé Contenu ajouté
<source>
Ligne 2 :
== Le if ==
Cette structure de contrôle permet d'exécuter une instruction ou une suite d'instructions seulement si une condition est vraie.
 
=== Syntaxe : ===
if (''condition'') ''instruction''
Ligne 7 ⟶ 8 :
 
=== Sémantique : ===
On évalue la condition : <br/>
- *si elle est vraie on exécute l’instruction et on passe à l ’instruction suivante. <br/>
- *si elle est fausse on passe directement à l ’instruction suivante. <br/>
 
L ’instruction peut être remplacée par une suite d ’instructions entre accolades
L’instruction peut être remplacée par une suite d ’instructions entre accolades.
 
=== Exemple : ===
<source lang="cpp">
#include <iostream>
#include <iostream>
using namespace std;
using namespace std;
int main()
{
int a;
cout << "Tapez la valeur de a : "; cin >> a;
if (a > 10)
cout << "a est plus grand que 10" << endl;
cout << "Le programme est fini" << endl;
return 0;
}
 
int main()
Ce programme demande à l'utilisateur de taper un entier a. Si a est strictement plus grand que 10, il affiche <tt>"a est plus grand que 10"</tt>. Dans le cas contraire, il n'affiche rien.<br/>
{
int a;
cout << "Tapez la valeur de a : "; cin >> a;
 
if (a > 10)
'''Exécution 1 :
cout << "a est plus grand que 10" << endl;
 
cout << "Le programme est fini" << endl;
return 0;
}
</source>
 
Ce programme demande à l'utilisateur de taper un entier a.
Si a est strictement plus grand que 10, il affiche <tt>"a est plus grand que 10"</tt>.
Dans le cas contraire, il n'affiche rien.
 
==== Exécution 1 ====
Tapez la valeur de a : '''12'''
a est plus grand que 10
'''==== Exécution 2 :====
Tapez la valeur de a : '''8'''
 
Ligne 44 ⟶ 50 :
 
=== Sémantique ===
* On évalue la condition, :
** si elle est vraie, on exécute l'<tt>''instruction1''</tt> et on passe à l'instruction suivante
** si elle est fausse, on exécute l'<tt>''instruction2''</tt> et on passe à l'instruction suivante
 
* L'<tt>''instruction1''</tt> ou l'<tt>''instruction2''</tt> peuvent être remplacées par une suite d'instructions entre accolades.
L'<tt>''instruction1''</tt> ou l'<tt>''instruction2''</tt> peuvent être remplacées par une suite d'instructions entre accolades.
 
=== Exemple : ===
<source lang="cpp">
#include <iostream>
#include <iostream>
using namespace std;
using namespace std;
int main()
{
int a;
cout << "Tapez la valeur de a : "; cin >> a;
if (a > 10)
cout << "a est plus grand que 10" << endl;
else
cout << "a est plus inférieur ou égal à 10" << endl;
return 0;
}
 
int main()
Ce programme demande à l'utilisateur de taper un entier a. Si a est strictement plus grand que 10, il affiche <tt>"a est plus grand que 10"</tt>. Dans le cas contraire, il affiche <tt>"a est plus inférieur ou égal à 10"</tt>.
{
int a;
cout << "Tapez la valeur de a : "; cin >> a;
 
if (a > 10)
'''Exécution 1 :
cout << "a est plus grand que 10" << endl;
else
cout << "a est plus inférieur ou égal à 10" << endl;
 
return 0;
}
</source>
 
Ce programme demande à l'utilisateur de taper un entier <tt>a</tt>. Si a est strictement plus grand que 10, il affiche <tt>"a est plus grand que 10"</tt>. Dans le cas contraire, il affiche <tt>"a est plus inférieur ou égal à 10"</tt>.
 
==== Exécution 1 ====
Tapez la valeur de a : '''12'''
a est plus grand que 10
'''==== Exécution 2 :====
Tapez la valeur de a : '''8'''
a est plus inférieur ou égal à 10
Ligne 101 ⟶ 110 :
 
=== Exemple 1 ===
<source lang="cpp">
#include <iostream>
#include <iostream>
using namespace std;
using namespace std;
 
int main()
int main()
{
{
int a;
int a;
cout << "Tapez la valeur de a : "; cin >> a;
 
switch(a)
{
case 1 :
cout << "a vaut 1" << endl;
break;
 
case 2 :
cout << "a vaut 2" << endl;
break;
 
case 3 :
cout << "a vaut 3" << endl;
break;
 
default :
cout << "a ne vaut ni 1, ni 2, ni 3" << endl;
break;
}
return 0;
}
</source>
 
Ce programme demande à l'utilisateur de taper une valeur entière et la stocke dans la variable a. On teste ensuite la valeur de a : en fonction de cette valeur on affiche respectivement les messages <tt>"a vaut 1"</tt>, <tt>"a vaut 2"</tt>, <tt>"a vaut 3"</tt>, ou <tt>"a ne vaut ni 1, ni 2, ni 3"</tt>.
Ligne 147 ⟶ 158 :
 
=== Exemple 2 ===
<source lang="cpp">
#include <iostream>
#include <iostream>
using namespace std;
using namespace std;
 
int main()
int main()
{
{
int a;
int a;
cout << "Tapez la valeur de a : "; cin >> a;
 
switch(a)
{
case 1 :
cout << "a vaut 1" << endl;
break;
 
case 2 :
case 4 :
cout << "a vaut 2 ou 4" << endl;
break;
 
case 3 :
case 7 :
case 8 :
cout << "a vaut 3, 7 ou 8" << endl;
break;
 
default :
cout << "valeur autre" << endl;
break;
}
return 0;
}
</source>
 
Ce programme demande à l'utilisateur de taper une valeur entière et la stocke dans la variable a. On teste ensuite la valeur de a : en fonction de cette valeur on affiche respectivement les messages <tt>"a vaut 1"</tt>, <tt>"a vaut 2 ou 4"</tt>, <tt>"a vaut 3, 7 ou 8"</tt>, ou <tt>"valeur autre"</tt>.
Ligne 210 ⟶ 223 :
 
=== Exemple ===
<source lang="cpp">
#include <iostream>
#include <iostream>
using namespace std;
using namespace std;
 
int main()
int main()
{
{
int i;
int i;
 
for(i=0 ; i<10 ; i++)
for(i=0 ; i<10 ; i++)
cout << "BONJOUR" << endl;
cout << "BONJOUR" << endl;
 
return 0;
return 0;
}
}
</source>
 
=== Boucle infinie ===
Ligne 227 ⟶ 242 :
Une boucle infinie est parfois nécessaire quand on ne connait pas l'instant où la boucle doit être arrêtée, et que la condition d'arrêt est évaluée au cœur de la boucle (gestion de messages, écoute de connexions réseau, ...).
 
<source lang="cpp">
for(;;)
for(;;)
{
{
// ...
// ...
}
}
</source>
 
== Le while ==
Ligne 243 ⟶ 260 :
 
=== Exemple de programme ===
<source lang="cpp">
#include <iostream>
#include <iostream>
using namespace std;
using namespace std;
 
int main()
int main()
{
{
int i=0;
int i=0;
 
while (i<10)
while {(i<10)
{
cout << "La valeur de i est : " << i << endl;
cout << "La valeur de i++ est : " << i << endl;
} i++;
}
 
cout << "La valeur finale de i est : " << i << endl;
cout << "La valeur finale de i est : " << i << endl;
return 0;
return 0;
}
}
</source>
 
==== Exécution ====
La valeur de i est : 0
Ligne 290 ⟶ 310 :
 
=== Exemple ===
<source lang="cpp">
#include <iostream>
#include <iostream>
using namesapce std;
using namesapce std;
 
int main()
int main()
{
{
int i=0;
int i=0;
 
do
{do
{
cout << "La valeur de i vaut : " << i << endl;
cout << "La valeur de i= vaut : " << i+1 << endl;
} i=i+1;
}
while (i<10);
 
cout << "La valeur finale de i est " << i << endl;
return 0;
}
</source>
 
'''Exécution : '''
La valeur de i vaut : 0
Ligne 321 ⟶ 344 :
 
== Le goto ==
Le <tt>goto</tt> est une structure de contrôle obsolète et ne doit plus être utilisé.
 
== Le break ==
L'instruction <tt>break</tt> sert à "casser" ou interrompre une boucle (<tt>for</tt>, <tt>while</tt> et <tt>do</tt>), ou un <tt>switch</tt>.
 
=== Syntaxe ===
<source lang="cpp">
break;
break;
</source>
 
=== Sémantique ===
* Sort de la boucle (ou dude l'instruction <tt>switch)</tt> la plus imbriquée.
 
=== Exemple ===
<source lang="cpp">
#include <iostream>
#include <iostream>
using namespace std;
using namespace std;
 
int main()
int main()
{
{
for (int i=0; i<10; i++)
for (int i=0; i<10; i++)
{
{
cout << "La variable i vaut: " << i << endl;
cout if<< "La variable i vaut: " << (i ==<< 5)endl;
if (i == break;5)
} break;
}
 
return 0;
return 0;
}
}
</source>
 
Ce programme interrompt sa boucle lors de la sixième itération.
 
'''==== Exécution: ====
La variable i vaut: 0
La variable i vaut: 1
Ligne 358 ⟶ 386 :
 
=== Note importante ===
Le <tt>break</tt> rend le code difficile à lire, à l'exception de son utilisation dans un <tt>switch</tt>, il ne doit pas être utilisé (au même titre que le <tt>goto</tt>).
 
== Le <tt>continue</tt> ==
L'instruction continue sert à "continuer" une boucle (<tt>for</tt>, <tt>while</tt> et <tt>do</tt>) avec la prochaine itération.
 
=== Syntaxe ===
<source lang="cpp">
continue;
continue;
</source>
 
=== Sémantique ===
Ligne 370 ⟶ 400 :
 
=== Exemple ===
<source lang="cpp">
#include <iostream>
#include <iostream>
using namespace std;
using namespace std;
 
int main()
int main()
{
{
for (int i=0; i<10; i++)
for (int i=0; i<10; i++)
{
{
if (i == 5) continue;
cout << "La variable i vaut: " << i << endl;
}
 
return 0;
}
</source>
 
Ce programme saute l'affichage de la sixième itération.