Attention aux pièges ...
Autant pour une alternative et avec un peu d'habitude on s'en sort bien pour l'expression booléenne autant pour l'itérative il est nécessaire de faire une pause et de réfléchir attentivement à l'expression booléenne:
Sachant que ce que je veux c'est me promener tant qu'il ne pleut pas ou alors (s'il pleut) il me faut un parapluie pour continuer à me promener...
autres exemples particuliers ou qui n'ont pas de sens
c = 6;
while (c <5)
   
{                    
/* début du while : c < 5  */
  afficher('A');
  c = c + 1;
}
                    /* fin du while */
                     /* c >= 5 */



On ne rentre jamais dans le corps de l'itération car c vaut 6 donc est supérieur à 5  !!!!! ==> Vérifier l'initialisation du compteur (c est le compteur ici)  dans une itération ...
c = 0;
while (c <5)
   
{                    
/* début du while : c < 5  */
  afficher('A');
}
                    /* fin du while */
                     /* c >= 5 */


STRICTEMENT INTERDIT !!! On ne sort plus jamais de l'itération, car c n'est jamais modifié donc vaut toujours 0 et à l'infini... et l'instruction afficher('A') sera exécutée à l'infini !!!!!!! ==> vérifier que l'expression booléenne d'une itération est modifiée dans le corps de l'itération...
while (c <5)    
{                    
/* début du while : c < 5  */
  afficher('A');
  c = c + 1;
}
                    /* fin du while */
                     /* c >= 5 */



On a oublié d'initialiser c, sa valeur est donc non significative ... on ne peut pas prévoir ce qui se passera à l'execution ==> vérifier que les variables utilisées dans les conditions sont bien initialisées.
suivant       plan