A propos d'un switch

Fermé
Reghi - 8 janv. 2009 à 00:42
mikebzh Messages postés 127 Date d'inscription samedi 20 décembre 2008 Statut Membre Dernière intervention 11 mars 2009 - 8 janv. 2009 à 01:54
Bonjour,
J'ai cette boucle switch, j'aimerai l'ameliorer. voici comment, si l'utilisateur entre un nombre qui n'est pas dans le menu, le programme vous qu'il ya erreur de choix mais je veux que le menu soit reafficher sans sortir du programme
comment faire
Merci

#include <stdio.h>
#include <stdlib.h>

void main()
{
long choixMenu;

printf("=== Menu ===\n\n");
printf("1. Royal Cheese\n");
printf("2. Mc Deluxe\n");
printf("3. Mc Bacon\n");
printf("4. Big Mac\n");
printf("\nVotre choix ? ");
scanf("%ld", &choixMenu);

printf("\n");

switch (choixMenu)
{
case 1:
printf("Vous avez choisi le Royal Cheese. Bon choix !");
break;
case 2:
printf("Vous avez choisi le Mc Deluxe. Berk, trop de sauce...");
break;
case 3:
printf("Vous avez choisi le Mc Bacon. Bon, ca passe encore ca ;o)");
break;
case 4:
printf("Vous avez choisi le Big Mac. Vous devez avoir tres faim !");
break;
default:
printf("ERREUR DE CHOIX, Reessayer...");
break;
}

printf("\n\n");
system("PAUSE");
}
A voir également:

3 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
8 janv. 2009 à 00:55
Salut,
Tu fais une entrée dans ton menu supplémentaire permettant de sortir (touche 9 par exemple).
Et tu fais une boucle do while autour de ton switch avec comme condition (while (touche!=9))
Si tu veux un exemple, n'hésite pas ;)
Cdlt
0
j'ai essaye mais ca n'a pas marché, envoie un exemple
#include <stdio.h>
#include <stdlib.h>

void main()
{
long choixMenu;
int touche;

printf("=== Menu ===\n\n");
printf("1. Royal Cheese\n");
printf("2. Mc Deluxe\n");
printf("3. Mc Bacon\n");
printf("4. Big Mac\n");
printf("\nVotre choix ? ");
scanf("%ld", &choixMenu);

printf("\n");
do
{
switch (choixMenu)
{
case 1:
printf("Vous avez choisi le Royal Cheese. Bon choix !");
break;
case 2:
printf("Vous avez choisi le Mc Deluxe. Berk, trop de sauce...");
break;
case 3:
printf("Vous avez choisi le Mc Bacon. Bon, ca passe encore ca ;o)");
break;
case 4:
printf("Vous avez choisi le Big Mac. Vous devez avoir tres faim !");
break;
default:
printf("ERREUR DE CHOIX, Reessayer...");
break;
case 9:
printf("Au revoir");

}}while((touche!=9));

printf("\n\n");
system("PAUSE");
}
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
8 janv. 2009 à 01:38
Oui, mais il faut modifier certaines autres choses.

Par exemple :

#include <stdio.h>

void menu(void){
    printf("=== Menu ===\n\n");
    printf("1. Royal Cheese\n");
    printf("2. Mc Deluxe\n");
    printf("3. Mc Bacon\n");
    printf("4. Big Mac\n");
    puts("9. Quitter");
}

int main(void)
{
    long choixMenu;
    int touche;

    do {
        menu();
        printf("\nVotre choix ? ");
        scanf("%ld",&choixMenu);
        while(getchar()!='\n');

        switch (choixMenu)
        {
            case 1:
                printf("Vous avez choisi le Royal Cheese. Bon choix !");
                break;
            case 2:
                printf("Vous avez choisi le Mc Deluxe. Berk, trop de sauce...");
                break;
            case 3:
                printf("Vous avez choisi le Mc Bacon. Bon, ca passe encore ca ;o)");
                break;
            case 4:
                printf("Vous avez choisi le Big Mac. Vous devez avoir tres faim !");
                break;
            case 9:
                puts("quitter");
                break;
            default:
                printf("ERREUR DE CHOIX, Reessayer...");
                break;
        }
    } while(choixMenu!=9);

    printf("\n\n");

    return 0;
}

Cdlt
0
mikebzh Messages postés 127 Date d'inscription samedi 20 décembre 2008 Statut Membre Dernière intervention 11 mars 2009 28
8 janv. 2009 à 01:54
Coucou fiddy
Pendant que nous faisons bosser Reghi sur un autre post, tu lui donnes la soluce c'est pas cool (surtout pour lui)
mais bon, il est tard
J'espère qu'il aura compris ses erreurs
Bonne nuit
0