Partage
  • Partager sur Facebook
  • Partager sur Twitter

Sortir d'une boucle ou d'une condition avant la fin

11 mai 2010 à 12:00:06

Bonjour !
Tout est dans le titre :lol: Je voudrais savoir comment sortir d'une boucle ou d'une condition avant la fin de celles-ci sans quitter le programme. Merci d'avance de vos réponses !
  • Partager sur Facebook
  • Partager sur Twitter
11 mai 2010 à 12:10:01

Grâce à l'instruction break.

exemple :
void func(void)
{
  int i=0;
  while(1)
  {
      if(i++ == 10)
         break;
  }
}


On sort de la boucle lorsque i vaux 10. (exemple pourri :) )
  • Partager sur Facebook
  • Partager sur Twitter
11 mai 2010 à 12:23:24

Oui mais le problème c'est que c'est un gros truc, genre un if dans un autre if dans un while bref :) Par exemple :

int i, j = 3, k;
while(i != 10)
{
   i++;
   while(k != 50)
   { 
      k++;
      if(j != 0)
         j--;

   }
}


(Un autre exemple pourri :-° ) Si je veux sortir de la condition, oui je vais faire un break, mais je serais toujours dans la boucle de k non?
  • Partager sur Facebook
  • Partager sur Twitter
11 mai 2010 à 12:34:08

Après, c'est à toi de construire tes boucles pour faire en sorte de sortir des deux :

int i=0, j = 3, k=0;
int found=0;
while(i != 10 && !found)
{
   i++;
   while(k != 50)
   { 
      k++;
      if(j != 0)
         j--;
      if(j == k)
      {
        found=1;
        break;
      }

   }
}


On exécute les deux boucles, tant que j!=k. Là j'ai utilisé une variable pour indiqué que la condition est remplie, mais il n'y avait même pas besoin.

Montre le code exacte, et dis quand tu veux sortir des boucles, on pourra mieux t'aider :)
  • Partager sur Facebook
  • Partager sur Twitter
11 mai 2010 à 13:18:10

Citation : Alcooline

Je voudrais savoir comment sortir d'une boucle ou d'une condition avant la fin de celles-ci sans quitter le programme. Merci d'avance de vos réponses !


Bonjour !

Le mot clé break permet de sortir de l'instruction de boucle, ou de l'instruction de switch , la plus imbriquée.

Le mot clé return permet de sortir de la fonction, donc de toutes les éventuelles instructions de boucle et switch imbriquées.

Dans quelques rares cas, ces deux solutions ne suffisent pas. Il reste alors l'instruction goto sur une étiquette placée immédiatement après la boucle dont on veut sortir. A noter que ce type de sortie de boucle est supporté par plusieurs autres langages sans utiliser goto , grâce à l'étiquetage des boucles. Mais C n'a pas d'étiquetage des boucles.
  • Partager sur Facebook
  • Partager sur Twitter
11 mai 2010 à 14:47:58

Effectivement, break marche, merci à vous pour vos réponses , et bonne journée :)
  • Partager sur Facebook
  • Partager sur Twitter
10 mars 2018 à 20:29:48

Merci !! débloqué grace à "break;" !!
  • Partager sur Facebook
  • Partager sur Twitter
15 novembre 2022 à 10:14:31

Svp,est ce possible en algorithmique?

  • Partager sur Facebook
  • Partager sur Twitter
15 novembre 2022 à 11:38:12

Bonjour,

Le message qui suit est une réponse automatique activée par un membre de l'équipe de modération. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

Pour plus d'informations, nous vous invitons à lire les règles générales du forum

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter

Pas d'aide concernant le code par MP, le forum est là pour ça :)