Aide pour du codage

Résolu
Veriditas Messages postés 162 Date d'inscription   Statut Membre Dernière intervention   -  
Veriditas Messages postés 162 Date d'inscription   Statut Membre Dernière intervention   -
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

[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
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
Veriditas Messages postés 162 Date d'inscription   Statut Membre Dernière intervention   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
Veriditas Messages postés 162 Date d'inscription   Statut Membre Dernière intervention   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