【问题标题】:Switch statement for Coke Machine code可乐机器代码的 switch 语句
【发布时间】:2014-10-11 04:44:20
【问题描述】:

我一直使用ifelse 语句而不是switch 语句,但我决定尝试切换。我用开关做了基本的可乐机程序,但我一生都无法弄清楚为什么它不能正常工作。当我使用数字 1-5 作为输入时,它会继续给出 switch 默认错误消息,而不是 case cout 语句(例如“你选择了可乐”)。显然我没有看到的东西一定是错的/

#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;
}

【问题讨论】:

  • 去掉所有case值的单引号。

标签: c++ switch-statement


【解决方案1】:

字符'1'与数字1不同。

改变

case '1':

case 1:

【讨论】:

  • 哦,那完全有道理。我正在查看提示的所有 switch 语句示例都使用字符,但我只是假设使用 '' 就是你进行 switch 的方式。感谢您快速简单的回复。
【解决方案2】:

看起来您的 case 语句是在比较字符,而不是整数:

case '5':

试试这个:

case 5:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-08
    • 1970-01-01
    • 2022-06-11
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    • 2021-10-13
    相关资源
    最近更新 更多