Language C boucle

Résolu
Profil bloqué -  
 Profil bloqué -
Bonjour, je suis programeurs debutant (je sais faire des calcule avec la table de commande et autre chose du genre) mon proble ses que je ne sais pas comment faire des boucle et comment se servir des case 1 , case 2 , case 3 ... etc
donc si vous pourier mexpliquer comment faire ou menvoier des exemple sa serait super ^^

8 réponses

  1. Gord21 Messages postés 928 Statut Membre 289
     
    Bonjour,
    Les boucles sont plutôt du type while ou for. Pour case, la syntaxe est :
    switch (expression)
    {
       case cste1 : instruction ;
       case cste2 : instruction ;
       ...
       default : instruction ;
    }


    Soit par exemple
    switch (c)
    /* on teste la valeur du caractère c*/
    {
       case 'a' : i=1 ; /* si le caractère c est la lettre a, on affecte 1 à i*/
       case 'b' : i=2 ;
       ...
       default : i=999 ; /*si le caractère c n'est aucun des case, on affecte 999 à i */
    }


    @+
    0
  2. Profil bloqué
     
    merci meme si je nai aps tres bien compris comment peut me servir les case mais merci quands meme a +
    ps je dois metre switch a la place de main ou je le met apres et switch sert a revenir au debut ?
    0
  3. Profil bloqué
     
    jai vraiment pas compris tu mexpliquer avec un vrai petit prgrame please^^
    0
  4. kidator.quitador Messages postés 18 Statut Membre 3
     
    Salut,
    Le "switch(x)" n'est pas une boucle, c'est une sorte de if()else imbriqué.
    Les "case 1: ...;break;" (les cas) correspondent donc à if(x == 1){...}.

    Bonne Chance!

    Kidator.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Gord21 Messages postés 928 Statut Membre 289
     
    Bonsoir,
    Switch est une instruction au même titre que if ou printf, elle ne remplace pas main. Par contre, comme je te l'ai dis plus haut, elle ne sert pas à faire une boucle, elle sert à tester une condition. Par exemple, de manière textuelle, tu pourrais avoir :
    Si contante = 1 alors faire action a
    Sinon, si constante = 2 alors faire action b
    Sinon, ...

    Ce qui se traduirait par
    if (constante==1) : action a ;
    else if (constante==2) : action b ;
    ...
    else ...

    La fonction switch se traduirait plutôt par :
    tester la valeur de la constante
    si la constante vaut 1, faire l'action a
    si la constante vaut 2, faire l'action b
    ...
    sinon

    soit
    switch (constante)
    {
       case 1 : action a ;
       case 2 : action b ;
       ...
       default : ...
    }


    J'espère que c'est plus clair.
    Pour ce qui est des boucles, décris moi ce que tu veux faire, je te proposerai quelque chose.

    @+
    0
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      A Gord21,

      Les deux exemples que tu as mis ne correspondent pas exactement. Pour que ça corresponde, il faut mettre : break à la fin de chacun de tes cases.

      Cdlt,
      0
    2. strato-boy Messages postés 831 Statut Membre 101
       
      oui, sans l'instrucion break, ça n'as plus d'intéret, il faut dire un programme "si 1 est vérifie ( case 1:) alors tu balance les action que j'ai mis dans le case, mais a la fin tu t'arrete et tu pars voir ce qu'il y à après le switch ! (break;)" sinon, le programme, il est tout bete, il continue son chemin sans s'arreté ! et le pire : a la compilation, t'auras pas d'eror, ni même un petit warning pour te prévenir !

      après les boucle c'est différent, mais c'est pas méchant ! il y a 3 modele possble, chacun avec ses petite différence, tout dépend de ce que tu compte faire ;-)
      0
    3. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Si ça a des intérêts d'utiliser sans break; c'est d'ailleurs pour ça que c'est pas obligatoire. Des petites astuces bien pratiques en algorithme.
      0
  7. Profil bloqué
     
    merci a tous me jaimerait savoir concretement (par un example de programe) a quoi serve les case et quands vous dite switch (experssion) vous pensser a quoi en disant expression ?
    0
  8. Gord21 Messages postés 928 Statut Membre 289
     
    Effectivement, il faut ajouter des break, l'exemple n'est pas complet, désolé.
    Mais j'attend les réponses de 0231jon pour savoir ce qu'il attend (boucles ou case)

    Regarde par exemple : https://www.commentcamarche.net/contents/111-langage-c-les-structures-conditionnelles
    0
  9. Profil bloqué
     
    ses bon grace a votre aide jy suis arrvie mais si vous pouvier maider jai un bug au niveau de la case 2
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    
    int main()
    {
    	int nombrecoups = 0;
    	int choixlvl = 0;
    	int max = 0;
    	int min = 1;
    	int continuer = 0;
    	
    	printf("........bienvenue dnas plus ou moingt de jonathan delean.......");
    	while (continuer ==1)
    	{
    		while (choixlvl <1 ||choixlvl >5)
    {	    
    	    	printf("difficulter\n");
    	    	printf("1.facile 1 a 100\n");
    	    	printf("2.moyen 1 a 200\n");
    	    	printf("3.difficile 1 a 500\n");
    	    	printf("4.impossible tes malade tu vas pas y arriver 1 a 10000\n");
    	    	printf("5.bon ba choisit combient tu veut ^^\n");
    	    	scanf("%d" , &choixlvl);
    	    	
    	    	printf("\n");
    	    	switch (choixlvl)
    	    	{
    	    		case 1:
                    printf("tu a choisit le mode facile , petit joueur\n");
                    break;
                    case 2:
                    printf("tu a choisi le mode moyen aller tu va y arriver\n");
                    break;
                    case 3:
                    printf("tu a choisit difficile voila un homme\n");
                    break;
                    case 4:
                    printf("tu a choisit IMPOSIBLE mais tes malade\n");
                    break;
                    case 5:
                    printf("tu a choisit personnaliser aller amuse toi bien\n");
                    break;
    	    	}
    	    }
    	    
    	    int nombremystere = 0;
    	    int nombrejoueur = 0;
    	    
    	    while(max < min)
    	    {
    	    	switch(choixlvl)
    	    	
    			case 1:
    	    	max = 100;
    	    	break;
    	    	
    	    	case 2:
                max = 200;
                break;
    	    	
    	    	case 3:
    	    	max = 500;
    	    	break;
    	    	
    	    	case 4:
    	    	max = 10000;
    	    	break;
    	    	
    	    	case 5:
    	    	printf("entre le chifre max : ");
    	    	scanf("%d" , &max);
    	    	if(max < min)
    	    	 {
               printf("La valeur max est inferieure a la valeur Min recommence\n\n");
    
           }
           else
           {
           }
           break
           
           srand(time(NULL));
        nombremystere = (rand() % (MAX - MIN + 1)) + MIN;
        
                    while (nombrejoueur != nombremystere)
    {
        printf(" quel est le nombre mystere ? ");
       scanf("%d",&nombrejoueur);
        if (nombreMystere > nombrejoueur)
        {
    printf("C'est plus !\n\n");
    nombrecoups++;
        }
            else if (nombremystere < nombrejoueur)
            {
    printf("C'est moins !\n\n");
    nombrecoups++;
            }
            
            else
                printf ("Bravo, vous avez trouve le nombre mystere qui etait %d en %d coups ! !!!\n\n",nombremystere,nombrecoups);
    
    }
    
    choixlvl = 0
    nombrecoups = 0
    
    printf(" voulez vous refaire une partie ? \n");
      printf("1. *** OUI ***\n");
      printf("2. *** NON ***\n");
      scanf("%d",&continuer);
      
      }
    printf("\n\n Ok , je te dis a bientot !");
    
       return 0;
    }
    0