Boucles
Les boucles sont un moyen de répéter du code autant de fois que nécessaire.
while
La boucle while exécute du code tant que la condition est Vraie.
#include <stdio.h>
int main(void)
{
int i = 0;
while (i < 10)
{
printf("%d\n", i);
++i;
}
return 0;
}
$ ./mon_super_programme
0
1
2
3
4
5
6
7
8
9
$
Si la condition est tout de suite Fausse, alors la boucle ne sera jamais exécutée.
#include <stdio.h>
int main(void)
{
int i = 10;
while (i < 10)
{
printf("%d\n", i);
++i;
}
return 0;
}
$ ./mon_super_programme
$
do while
do while est une boucle qui va exécuter au moins une fois le code de la boucle.
#include <stdio.h>
int main(void)
{
int i = 0;
do
{
printf("%d\n", i);
++i;
} while (i < 10);
return 0;
}
Note le point-virgule ';' à la toute fin de la ligne avec le while.
$ ./mon_super_programme
0
1
2
3
4
5
6
7
8
9
$
Le code sera toujours exécuté au moins une fois.
#include <stdio.h>
int main(void)
{
int i = 10;
do
{
printf("%d\n", i);
++i;
} while (i < 10);
return 0;
}
$ ./mon_super_programme
10
$
for
Une boucle for est séparée en trois instructions.
- INITIALISATION qui est exécutée une seule fois au tout début de la boucle
- CONDITION qui est testée à chaque itération
- INSTRUCTION qui est exécutée à chaque itération après le test de la condition, sauf la première fois
for (INITIALISATION; CONDITION; INSTRUCTION)
{
// Le code
}
Note qu'il y a une séparation avec des point-virgules ';'.
#include <stdio.h>
int main(void)
{
for (int i = 0; i < 10; ++i)
{
printf("%d\n", i);
}
return 0;
}
$ ./mon_super_programme
0
1
2
3
4
5
6
7
8
9
$
Tu peux aussi t'en servir pour parcourir les chaînes de caractères.
#include <stdio.h>
int my_strlen(char *str)
{
int result = 0;
for (int i = 0; str[i] != '\0'; ++i)
{
++result;
}
return result;
}
int main(void)
{
char *ptr = "coucou les loulous";
int ptr_size = my_strlen(ptr);
printf("Longueur de '%s' = %d\n", ptr, ptr_size);
return 0;
}
$ ./mon_super_programme
Longueur de 'coucou les loulous' = 18
$
Ici tu recodes la fonction strlen qui retourne le nombre de caractères dans une chaîne de caractères.
Je t'invite à lire man 3 strlen.