2013-07-21 5 views
1

Bonjour les gars serait-il quelqu'un s'il vous plaît aidez-moi à réparer ce code? Il fonctionne mais il n'effectue pas la tâche qu'il devrait faire. Une fois que vous l'exécutez, il saute automatiquement à l'instruction par défaut et ignore les cas. S'il vous plaît aidez-moi à résoudre ce problème!Commutateur erreur de déclaration en C++

#include<iostream.h> 
#include<conio.h> 

using namespace std; 


int main() 
{ 
    int choice; 
    char nbaPlayer, tele, food, subject, x; 

    cout << "This program determines your favorites.\n\n"; 
    cout << "Please select the number of your corresponding choice."; 
    cout << "\n1. NBA Player"; 
    cout << "\n2. Teleserye"; 
    cout << "\n3. Food"; 
    cout << "\n4. Subject"; 
    cout << "\n5. Exit"; 

    switch (choice) 
    { 
     case 1: 
      cout << "You have chosen NBA Player.\n"; 
      cout << "Please enter your favorite NBA Player. \n"; 
      cin >> nbaPlayer; 
      cout << "Your favorite NBA player is " << nbaPlayer; 
      break; 

     case 2: 
      cout << "You have chosen Teleserye.\n"; 
      cout << "Please enter your favorite teleserye. \n"; 
      cin >> tele; 
      cout << "Your favorite teleserye is " << tele; 
      break; 

     case 3: 
      cout << "You have chosen food.\n"; 
      cout << "Please enter your favorite food. \n"; 
      cin >> food; 
      cout << "Your favorite food is " << food; 
      break; 

     case 4: 
      cout << "You have chosen subject.\n"; 
      cout << "Please enter your favorite subject. \n"; 
      cin >> subject; 
      cout << "Your favorite subject is " << subject; 
      break; 

     case 5: 
      cout << "You chose to exit.\n"; 
      break; 

     default: 
      cout <<"\nInvalid input"; 

    } 

    getch(); 
} 

Répondre

11

Vous avez simplement oublié:

cin>>choice 

après l'affichage des options de choix disponibles. Ainsi, lorsque vous n'attribuez jamais de valeur au choix, il choisit toujours default.

+6

Petite correction: il ne choisira pas toujours 'default'. C'est un comportement indéfini à lire à partir d'un 'int' non initialisé. En pratique, 'choice' pourrait avoir n'importe quelle valeur. – juanchopanza

Questions connexes