[C/C++] Besoin d'explications (boucle for)

Le côté programmation du développement d'un jeu vidéo.

Besoin d'explications (boucle for)

Messagepar MrPacane » 20 Juil 2008, 06:02

Bonjour tout le monde!

Commencez par regarder ce bout de code :

void menu()
{
cout << "1. Create a list" << endl;
cout << "2. Open an existing list" << endl;
cout << endl;
cout << "Please select an option : ";
}

int choice;

for(;;)
{
menu();

choice = 0;
cin >> choice;

if (choice <= 0)
{
break;
}

switch (choice)
{
case 1:
createList();
break;
case 2:
openList();
break;
default:
break;
}
}


Lorsque j'enlève la 15e ligne (choice = 0;), après quelques passages dans la boucle for, le programme finit toujours par planter comme ça :

Image

Mais lorsque je remets la variable choice à zéro avant chaque saisie, tout fonctionne pour le mieux...

J'aimerais savoir pourquoi. Est-ce que quelqu'un peut m'expliquer?

Merci!
Avatar de l’utilisateur
MrPacane
Hello World, I'm new !
 
Messages: 49
Inscription: 20 Avr 2005, 03:21

Messagepar Mokona » 20 Juil 2008, 10:39

Bonjour,

le "comme ça", je suppose que ça part en boucle sans s'arrêter, c'est ça ? (le screenshot ne montre qu'un état, pas un déroulement).

Dans ce cas, en laissant choice = 0; essai de taper des chiffres uniquement, puis tape à un moment des lettres. Il me semble que cela va faire la même chose.

Le problème étant que cin >> choice; attend un entier et que si tu lui donnes autre chose qu'un entier, ça le perturbe.
Mokona
Hello World, I'm new !
 
Messages: 1686
Inscription: 13 Mar 2005, 13:00


Retourner vers Programmation

Qui est en ligne

Utilisateurs parcourant ce forum: Google [Bot] et 6 invités

cron