Language C boucle

Résolu/Fermé
Profil bloqué - 3 sept. 2010 à 18:15
 Profil bloqué - 4 sept. 2010 à 15:52
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

Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
3 sept. 2010 à 18:55
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
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
Profil bloqué
3 sept. 2010 à 19:28
jai vraiment pas compris tu mexpliquer avec un vrai petit prgrame please^^
0
kidator.quitador Messages postés 18 Date d'inscription mardi 31 août 2010 Statut Membre Dernière intervention 13 septembre 2010 3
Modifié par kidator.quitador le 3/09/2010 à 21:12
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
3 sept. 2010 à 21:24
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
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
3 sept. 2010 à 23:29
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
strato-boy Messages postés 769 Date d'inscription mercredi 11 février 2009 Statut Membre Dernière intervention 19 janvier 2011 100
4 sept. 2010 à 00:36
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
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
4 sept. 2010 à 00:49
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
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
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
4 sept. 2010 à 14:53
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
Profil bloqué
4 sept. 2010 à 15:52
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