Besoin d'aide création d'une boucle en C
cutertarget
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
ptidavid Messages postés 1273 Date d'inscription Statut Membre Dernière intervention -
ptidavid Messages postés 1273 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
En me promenant sur le net j'ai découvert le site du 0 et je m'y suis un peu intéressé. Cependant j'ai un petit soucis .. je suis bloqué en essayant d'ajouter une boucle a mon menu ....
Voici mon code :
// site0menu.cpp : définit le point d'entrée pour l'application console.
//
#include <stdafx.h>
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int autrechoix;
while (autrechoix=1)
{
int choixmenu;
printf ("-- MENU MACPPPPPPONALD--\n\n");
printf ("Choix n1 : Cheese\n");
printf ("choix n2 : Burger\n");
printf ("choix n3 : DoubleCheese\n");
printf ("choix n4 : Menu M\n");
printf ("Entrez le n de votre commande : \n ");
scanf ("%d", &choixmenu);
switch (choixmenu)
{
case 1:
printf ("Cheese, bon choix !\n");
break;
case 2:
printf ("Burger, bon choix aussi !\n");
break;
case 3:
printf ("DoubleCheese, très bon choix!\n");
break;
case 4:
printf ("Menu M, le meilleur !\n");
break;
default:
printf ("Entrez un chiffre correct\n");
break;
}
int autrechoix;
printf ("Desirez-vous autre chose?\n");
printf ("Tapez 1 pour oui\n");
printf ("Si vous ne voulez rien ajouter à votre commande \n Appuyez sur n'importe quelle autre touche");
scanf ("%d", &autrechoix);
if autrechoix!=1;
{
return 0;
}
}
}
Est-ce que quelqu'un sait m'expliquer pour quoi cela ne fonctionne pas?
En gros ce dont j'aimerai arriver à c'est :
Le programme me demande ce que je veux.
Je choisis.
Il me demande si je veux quelque chose d'autre.
Si oui ( en tapant 1 ) , on re propose le menu
si non ( en tapant sur n'importe quelle autre touche ) , le menu se ferme et dit aurevoir.
Voilà merci à ceux qui pourront m'aider ;-)
En me promenant sur le net j'ai découvert le site du 0 et je m'y suis un peu intéressé. Cependant j'ai un petit soucis .. je suis bloqué en essayant d'ajouter une boucle a mon menu ....
Voici mon code :
// site0menu.cpp : définit le point d'entrée pour l'application console.
//
#include <stdafx.h>
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int autrechoix;
while (autrechoix=1)
{
int choixmenu;
printf ("-- MENU MACPPPPPPONALD--\n\n");
printf ("Choix n1 : Cheese\n");
printf ("choix n2 : Burger\n");
printf ("choix n3 : DoubleCheese\n");
printf ("choix n4 : Menu M\n");
printf ("Entrez le n de votre commande : \n ");
scanf ("%d", &choixmenu);
switch (choixmenu)
{
case 1:
printf ("Cheese, bon choix !\n");
break;
case 2:
printf ("Burger, bon choix aussi !\n");
break;
case 3:
printf ("DoubleCheese, très bon choix!\n");
break;
case 4:
printf ("Menu M, le meilleur !\n");
break;
default:
printf ("Entrez un chiffre correct\n");
break;
}
int autrechoix;
printf ("Desirez-vous autre chose?\n");
printf ("Tapez 1 pour oui\n");
printf ("Si vous ne voulez rien ajouter à votre commande \n Appuyez sur n'importe quelle autre touche");
scanf ("%d", &autrechoix);
if autrechoix!=1;
{
return 0;
}
}
}
Est-ce que quelqu'un sait m'expliquer pour quoi cela ne fonctionne pas?
En gros ce dont j'aimerai arriver à c'est :
Le programme me demande ce que je veux.
Je choisis.
Il me demande si je veux quelque chose d'autre.
Si oui ( en tapant 1 ) , on re propose le menu
si non ( en tapant sur n'importe quelle autre touche ) , le menu se ferme et dit aurevoir.
Voilà merci à ceux qui pourront m'aider ;-)
A voir également:
- Besoin d'aide création d'une boucle en C
- Creation compte gmail - Guide
- Création site web - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
- Création compte google - Guide
- Creation compte vinted - Guide
2 réponses
Bonsoir à toi,
Bon le C++ est pas mon point fort, mais je vais essayer de t'aider. D'une part, pourquoi as-tu défini deux fois la variable autrechoix dans ton main? Ensuite pourquoi n'as-tu pas initialisé cette variable autrechoix, par exemple à 1? Car là le programme ne rentre jamais dans ta boucle while, vu que autrechoix n'a pas de valeur et ne vaut donc pas 1.
Bon le C++ est pas mon point fort, mais je vais essayer de t'aider. D'une part, pourquoi as-tu défini deux fois la variable autrechoix dans ton main? Ensuite pourquoi n'as-tu pas initialisé cette variable autrechoix, par exemple à 1? Car là le programme ne rentre jamais dans ta boucle while, vu que autrechoix n'a pas de valeur et ne vaut donc pas 1.
Salut
C'est pire que ça !
while(var=1) : ca met 1 dans var, puis on considere var comme un booleen
et comme var vaudra à chaque fois 1, la condition sera toujours vraie ;-)
C'est pire que ça !
while(var=1) : ca met 1 dans var, puis on considere var comme un booleen
et comme var vaudra à chaque fois 1, la condition sera toujours vraie ;-)
Effectivement j'avais pas vu :) Bon j'ai téléchargé Dev C++ et m'y suis mis quelques minutes. Voici le programme corrigé, il devrait faire ce que tu souhaites :
#include <cstdlib>
#include <iostream>
#include <cstdio>
int main()
{
int autrechoix=1;
while (autrechoix==1)
{
int choixmenu;
printf ("-- MENU MACPPPPPPONALD--\n\n");
printf ("Choix n1 : Cheese\n");
printf ("choix n2 : Burger\n");
printf ("choix n3 : DoubleCheese\n");
printf ("choix n4 : Menu M\n");
printf ("Entrez le n de votre commande : \n ");
scanf ("%d", &choixmenu);
switch (choixmenu)
{
case 1:
printf ("Cheese, bon choix !\n");
break;
case 2:
printf ("Burger, bon choix aussi !\n");
break;
case 3:
printf ("DoubleCheese, très bon choix!\n");
break;
case 4:
printf ("Menu M, le meilleur !\n");
break;
default:
printf ("Entrez un chiffre correct\n");
break;
}
printf ("Desirez-vous autre chose?\n");
printf ("Tapez 1 pour oui\n");
printf ("Si vous ne voulez rien ajouter à votre commande \n Appuyez sur n'importe quelle autre touche\n");
scanf ("%d", &autrechoix);
}
printf ("Au revoir!\n");
system("PAUSE"); //attente d'un appui de touche au clavier pour quitter
}
Voici les corrections faites :
- j'ai supprimé la seconde déclaration de la variable autrechoix qui était dans ta boucle while,
- j'ai initialisé autrechoix à 1 pour permettre au programme de rentrer dans ta boucle while,
- j'ai corrigé l'erreur évoquée par le concombre javelisé while (autrechoix=1) en while (autrechoix==1) (= affectation, == test condition),
- j'ai supprimé ta boucle if(autrechoix!=1)... car je la trouvais inutile,
- j'ai rajouté
printf ("Au revoir!\n");
system("PAUSE"); //attente d'un appui de touche au clavier pour quitter
Et là ça fonctionne. Si tu as des questions, n'hésite pas.
#include <cstdlib>
#include <iostream>
#include <cstdio>
int main()
{
int autrechoix=1;
while (autrechoix==1)
{
int choixmenu;
printf ("-- MENU MACPPPPPPONALD--\n\n");
printf ("Choix n1 : Cheese\n");
printf ("choix n2 : Burger\n");
printf ("choix n3 : DoubleCheese\n");
printf ("choix n4 : Menu M\n");
printf ("Entrez le n de votre commande : \n ");
scanf ("%d", &choixmenu);
switch (choixmenu)
{
case 1:
printf ("Cheese, bon choix !\n");
break;
case 2:
printf ("Burger, bon choix aussi !\n");
break;
case 3:
printf ("DoubleCheese, très bon choix!\n");
break;
case 4:
printf ("Menu M, le meilleur !\n");
break;
default:
printf ("Entrez un chiffre correct\n");
break;
}
printf ("Desirez-vous autre chose?\n");
printf ("Tapez 1 pour oui\n");
printf ("Si vous ne voulez rien ajouter à votre commande \n Appuyez sur n'importe quelle autre touche\n");
scanf ("%d", &autrechoix);
}
printf ("Au revoir!\n");
system("PAUSE"); //attente d'un appui de touche au clavier pour quitter
}
Voici les corrections faites :
- j'ai supprimé la seconde déclaration de la variable autrechoix qui était dans ta boucle while,
- j'ai initialisé autrechoix à 1 pour permettre au programme de rentrer dans ta boucle while,
- j'ai corrigé l'erreur évoquée par le concombre javelisé while (autrechoix=1) en while (autrechoix==1) (= affectation, == test condition),
- j'ai supprimé ta boucle if(autrechoix!=1)... car je la trouvais inutile,
- j'ai rajouté
printf ("Au revoir!\n");
system("PAUSE"); //attente d'un appui de touche au clavier pour quitter
Et là ça fonctionne. Si tu as des questions, n'hésite pas.