【问题标题】:Enum and Switch statement C++枚举和 Switch 语句 C++
【发布时间】:2017-12-13 03:24:20
【问题描述】:
int a, b;
cin >> a >> b;
enum operation {add, sub, mul, div};
        operation d;
        switch (d)
        {
        case add : cout << "addition of two numbers is: " << a + b << endl;
            break;
        case sub : cout << "subtraction of two numbers is " << a - b << endl;
            break;
        case mul : cout << "multiplication of the two numbers is " << a * b << endl;
            break;
        case div : cout << "division of the two numbers is " << a / b << endl;
        default: cout << "invalid parameters" << endl;
        }

当我构建它时,我收到错误“使用未初始化的局部变量 d”,但是当我从定义的列表中将变量初始化为一个时,除了定义的那个之外,我无法选择任何其他 switch case。 我知道我错过了一些东西,我用谷歌搜索了很多但无法获得帮助。如果有人能提供帮助,我将不胜感激。谢谢!

【问题讨论】:

  • 当你输入开关时,变量d一定已经被赋值了。考虑一下。
  • @kapardhi d 的值从何而来? .您可以使用默认值初始化 d 并读取操作值( add/sub/..._ 从标准输入并将其转换为枚举。
  • Switch 不会产生任何用户交互。

标签: c++ oop enums switch-statement


【解决方案1】:

我认为您正在尝试使您的代码动态化。不幸的是,你完全错了。请先在enum上明确你的概念。

如果是这种情况,那你可以试试这个-

int a, b;
char op;

cin >> a >> op >> b;

switch(op)
{
    case '+': cout << "addition of two numbers is: " << a + b << endl; break;
    case '-': cout << "subtraction of two numbers is " << a - b << endl; break;
    case '*': cout << "multiplication of the two numbers is " << a * b << endl; break;
    case '/': cout << "division of the two numbers is " << a / b << endl; break;
    default: cout << "invalid operator" << endl;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-30
    相关资源
    最近更新 更多