2014-10-11 2 views
3

Я всегда использовал ifelse заявления за switch заявлениями, но я решил, что хочу попробовать выключить. Я сделал основную программу Coke Machine с помощью переключателя, и я не могу на всю жизнь понять, почему он не работает, как это должно быть. Когда я использую номер 1-5 для моего ввода, он продолжает выдавать сообщение об ошибке по умолчанию для коммутатора вместо инструкций cout case (например, «Вы выбрали Coke»). Очевидно, что-то должно быть не так, что я не вижу/Заявление оператора для кода кокса Код

#include <iostream> 

using namespace std; 

int main() 
{ 
    int number; 

    cout << "Beverage List" << endl; 
    cout << "Coke = 1" << endl; 
    cout << "Dr. Pepper = 2" << endl; 
    cout << "Water = 3" << endl; 
    cout << "Sprite = 4" << endl; 
    cout << "Lemonade = 5" << endl << endl << endl; 
    cout << "Enter a number to choose a beverage: "; 
    cin >> number; 

    switch (number) 
    { 
    case '1': 
     cout << "You chose Coke"; 
     break; 

    case '2': 
     cout << "You chose Dr. Pepper"; 
     break; 

    case '3': 
     cout << "You chose Water"; 
     break; 

    case '4': 
     cout << "You chose Sprite"; 
     break; 

    case '5': 
     cout << "You chose Lemonade"; 
     break; 

    default: 
     cout << "Error: Choice was not valid. Here is your money back."; 

    } 

    cout << "\n"; 
    system("pause"); 
    return 0; 
} 
+0

Потеряйте одиночные кавычки вокруг всех этих значений. – WhozCraig

ответ

2

Характер '1' не совпадает с номером 1.

Изменить

case '1': 

в

case 1: 
+0

О, хорошо, что тогда имеет смысл. Все примеры операторов switch, которые я просматривал для подсказок, использовали символы, но я просто предположил, что использование «было именно тем, как вы сделали переключатель. Благодарим вас за быстрый и легкий ответ. –

2

Похоже, ваши заявления случае сравнивают символы, а не целые числа:

case '5': 

Попробуйте вместо этого:

case 5: 
Смежные вопросы