Forum Clubic

Problème de boucle (C++)

Salut, j’ai un problème de boucle en C++.
Je veux faire un menu avec un grand 1, grand 2, grand 3

A la fin de chaque explication, je souhaite mettre une commande qui nous fais revenir au menu principal…

J’ai fais un schéma vite fait pour que cela soit plus explicite…

Merci d’avance :stuck_out_tongue:

:jap:
Basclln

merci de preciser le langage dans le titre de ton topic, tu as pour cela des sous-catégories en éditant ton 1er post :jap:

sinon pour ton probleme, essaye avec une boucle while avec à l’interieur un switch.

J’utilise le C++
Désolé,c’est la première fois que j’utilise ce forum :slight_smile:
Vous pourriez me faire un exemple, car là,je suis paumé. J’essaie, mais je n’y arrive pas.

Pour éditer le titre du topic:
dans l’entête de ton premier post. Tu as un smiley clin d’oeil, la date du post puis une icône profil. Cliques sur la suivante représentant une feuille de papier et un crayon.
Devant le titre du topic places [c\c++]. Valides.

Pour ton problème. Poses le en français sur une feuille de papier ce sera plus simple.

J’affiche un menu général et je demande l’entrée utilisateur jusqu’à ce que l’utilisateur choisisse de sortir du menu.
Si l’utilisateur choisit “titreI”, j’affiche le menu “titreI” jusqu’à ce qu’il décide de sortir du menu “titreI”… reprise du principe pour les sous-menus.

On voit donc une structure:
[cpp]while(!finMenuPrincipal)
{
AfficherMenuPrincipal();
}

void AfficherMenuPrincipal()
{
// texte du menu
// saisie de l’utilisateur
switch (saisieUtilisateur)
{
case sortieMenuPrincipal:
finMenuPrincipal = VRAI;
break;
case TitreI:
AfficherTitreI();
break;

}
}[/cpp]

Merci, j’ai changé.

[cpp]while(!finMenuPrincipal)[/cpp]
ça, ça veut dire “pendant que”… le “!” veut dire quoi ? Et finMenuPrincipal est une variable ?
De quel type ?

[cpp]void AfficherMenuPrincipal()
{
// texte du menu
// saisie de l’utilisateur
switch (saisieUtilisateur)
{
case sortieMenuPrincipal:
finMenuPrincipal = VRAI;
break;
case TitreI:
AfficherTitreI();
break;
[/cpp]

Void,c’est quelle fonction ? A quoi sert-elle ?

Dans :

[cpp] void AfficherMenuPrincipal() [/cpp]

AfficherMenuPrincipal c’est une variable ? et qu’ily a t-il entre parenthèses ?

[cpp]finMenuPrincipal = VRAI[/cpp]
fin menuprincipalest une variable de type bool (true or false) ?

merci d’avance !

Oui le code que j’ai écrit n’en est pas un. On peut dire que c’est du pseudo code pour te donner une idéee de ce que tu peux faire dans le langage choisit.

Si tu prends le cas d’une variable booléenne (bool) : myBoolean qui peut prendre 2 valeurs : VRAI ou FAUX, true ou false (suivant les langages).

En C++ si tu testes la valeur de myBoolean tu écris
[cpp]if (myBoolean)
// action
// Ceci est équivalent à
if (myBoolean == true)
// action
[/cpp]

mais on peut tester la condition not myBoolean ou !myBoolean qui correspond à la valeur que ne contient pas myBoolean
[cpp]
if (!myBoolean)
// action
// ceci est equivalent à
if ((!myBoolean == true))
// soit
if (myBoolean == false)
// action
[/cpp]

Ensuite,

void est un type. En C++, void est le type renvoyé par les procédures. Je sais c’est bizzard, une procédure fait quelque chose et ne retourne pas de valeur, une fonction vaut quelque chose. C’est donc une procédure qui retourne une valeur. En C++ tout est fonction, mais certaines retournent le type “rien” ou void.

Donc void AfficherMenuPrincipal() est l’appel d’une procédure qui va afficher un menu et attendre la saisie de l’utilisateur. Et qui ne retourne rien.

Les parenthèses signifient que l’on appelle une fonction ou une procedure. Comme il n’y a rien entre les parenthèses, on ne passe aucun argument à la procédure.

finMenuPrincipal est une variable booléenne. Je l’ai nommé ainsi car c’est plus lisible.

Ok, merci ,et pour void et le reste ?

Basclln

J’ai pas fini d’écrire :lol:

Ok, mais le problème vient que certaines commandes, je ne les connais aps, elles ne sont pas expliquées dansmon bouquin, comme void…

Ok,je lis ce que tu as remarqué !

C’est complété.

j’ai vu, merci.

Dans mon code suivant :

[cpp]

#include
#include
#include
using namespace std;

int main(int nNumberofArgs, char* pszArgs[])
{
int choix;
cout << “ICI ça commence !!!”;
cout<<endl;
cout << “Entrez votre choix :”;
cin >> choix;
cout << endl;

switch(choix)
{
       case 1 : choix==1;
           cout << "coucou tu as tapé 1";
           break;
           
           
       case 2 : choix==2;
           cout << "tu as tapé 2";
           break;
           
       case 3 : choix==3;
               cout << "tu as tapé 3";
               break;
               
               
   
                }
               
                
                
               system ("Pause");

return 0;

}

[/cpp]

Si après chaque, choix, je veux retourner à [cpp]cout << “ICI ça commence !!!”;[/cpp] , comment dois-je organiser mon code ?
Donc ce la va former unprogramme qui ne se finira jamais, mais c’est juste une exemple :slight_smile:

Il va finir grace au controle de la variable booléenne : fin.

[cpp]int main()
{
bool fin = false;
int choix;
char c;

while (!fin)
{
cout << “Entrez votre choix :”;
cin >> choix;

switch(choix) 
{ 
  case 1 : 
    cout << "coucou tu as tapé 1"; 
    break;    
  case 2 : // case 2 veut dire choix == 2 on aurait pu marquer case "bonjour": 
    cout << "tu as tapé 2"; 
    break; 
            
  case 3 : 
    cout << "tu as tapé 3"; 
    break; 
}
cout << endl << "Arreter (O/N)?";
cin >> c;
if (c == 'O' || c == 'o')
  fin = true; 

}
system (“Pause”);
return 0;

}
[/cpp]

Ce n’est pas qu’il finisse que je souhaite jutement, mais qu’il revienne toujours au point de départ.
Une sorte de boucle. Qu’il finisse suivant une condition, je verrai après, mais mon principal problème, c’est qu’il revienne automatiquement au début.

Merci :slight_smile:

Bien temps que tu ne tapes pas O ou o il revient au début.

A+ je vais faire du roller.

ok, merci !

pour les boucles faut faire un brushing

ben,là, ça fonctionne du tonerre ! Un coup, j’avais vu une fonction, sleep je crois, pour avoir un effet d’attente, ave cpour une unité = 1 ms… alors, je recherche la syntaxe.

Merci, mais je n’aipas le temps d’aller chez mon coiffeur :lol:
Non, je deconne, c’est quoi ?

lol je sors