Aide pour du codage

Résolu
Veriditas Messages postés 169 Statut Membre -  
Veriditas Messages postés 169 Statut Membre -
Bonjour à vous tous ! :)
Voilà, j'ai décidé aujourd'hui de me remettre à la programmation. Pour bien reformer mes bases, je travaille le C pour ensuite dévier sur du C# .NET ou Java.
Je suis le tutoriel de M@teo sur https://openclassrooms.com/fr/ J'en suis au moment du Menu Mc Donald (https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c
J'y arrive très bien mais j'essaie de développer mon programme au delà de ce qu'il propose.
En fait, j'aimerai que le programme demande de nouveau le choix de Commande quand celui-ci est différent de 1, 2, 3 et 4 et je n'y arrive pas ! J'ai essayé de nombreuses techniques ! Je sais bien entendu utiliser les boucles mais là, ça vient pas...

Voici ce que j'ai fait :

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

int main()
{
    int VotreChoix;

    // On affiche le menu

    printf("=== Menu ===\n");
    printf("\t1. Royal Cheese\n");
    printf("\t2. Mc Deluxe\n");
    printf("\t3. Mc Bacon\n");
    printf("\t4. Big Mac\n");
    printf("Quel est votre choix ?\n");

    scanf("%d", &VotreChoix); //On demande le choix

    printf("\n");

    if (VotreChoix == 1) //Lorsque le nombre saisis est 1
    {
        printf("Votre choix est le Royal Cheese. Bon appetit !");
    }
    else if (VotreChoix == 2) //Lorsque le nombre saisis est 2
    {
        printf("Votre choix est le Mc Deluxe. Bon appetit !");
    }
    else if (VotreChoix == 3) //Lorsque le nombre saisis est 3
    {
        printf("Votre choix est le Mc Bacon. Bon appetit !");
    }
    else if (VotreChoix == 4) //Lorsque le nombre saisis est 4
    {
        printf("Votre choix est le Big Mac. Bon appetit !");
    }
    else //Lorsque le nombre saisis est faux
    {
        while (VotreChoix != 1,2,3,4) //On dit que le nombre et faux et demande de nouveau le nombre tant qu'il est faux
        {
            printf("Vous n'avez pas rentre un bon choix de commande. Reessayez...\n");
            scanf("%d", &VotreChoix);
        }

    }

    printf("\n\n");

    return 0;
}


Lorsque je l'exécute et que j'inscrit un nombre faux, il me dit le que le nombre est faux et me demande de nouveau le nombre. Et si par la suite j'inscris un nombre juste, il me dit encore une fois que c'est faux...

Merci d'avance,

Veriditas !

3 réponses

  1. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    Salut Veriditas,

    while (VotreChoix != 1,2,3,4) est faux.

    On peut faire, par exemple :

    while ( (VotreChoix != 1) && (VotreChoix != 2) && (VotreChoix != 3) && (VotreChoix != 4) )

    Cela dit, ta boucle est mal placée, car elle ne va pas aboutir à l'évaluation du résultat de la saisie corrigée.

    Dal
    0
  2. Veriditas Messages postés 169 Statut Membre 10
     
    Ah merci ! C'est sur ca que j'avais un enorme doute ! Je revois entierement le code demain, ca va me debloquer des choses ca ! Je te tiens au courant, merci beaucoup :D
    0
  3. Veriditas Messages postés 169 Statut Membre 10
     
    Ca y est, j'ai réussi ! Merci à [Dal] pour son aide !
    Pour ceux que ça intéresse :

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        int VotreChoix;
    
        // On affiche le menu
    
        printf("=== Menu ===\n");
        printf("\t1. Royal Cheese\n");
        printf("\t2. Mc Deluxe\n");
        printf("\t3. Mc Bacon\n");
        printf("\t4. Big Mac\n");
        printf("Quel est votre choix ?\n");
    
        scanf("%d", &VotreChoix); //On demande le choix
    
        printf("\n");
    
        while ( (VotreChoix != 1) && (VotreChoix != 2) && (VotreChoix != 3) && (VotreChoix != 4)) //Tant que cesy faux...
        {
            printf("Vous avez rentre un mauvais choix de commande. Reessayez...\n"); //On le dit...
            scanf("%d", &VotreChoix); //Et on redemande la commande
            printf("\n");
        }
    
        if (VotreChoix == 1) //Lorsque le nombre saisis est 1
        {
            printf("Votre choix est le Royal Cheese. Bon appetit !");
        }
        else if (VotreChoix == 2) //Lorsque le nombre saisis est 2
        {
            printf("Votre choix est le Mc Deluxe. Bon appetit !");
        }
        else if (VotreChoix == 3) //Lorsque le nombre saisis est 3
        {
            printf("Votre choix est le Mc Bacon. Bon appetit !");
        }
        else if (VotreChoix == 4) //Lorsque le nombre saisis est 4
        {
            printf("Votre choix est le Big Mac. Bon appetit !");
        }
    
        printf("\n\n");
    
        return 0;
    }
    0