0

我只是想知道是否可以使用键盘进行可变大小写?因此,案例可以是从 a 到 z 的任何选择,并且其完全可变,例如:只有选择 a)、b) 和 c) 出现在一个条件下,而在另一个条件下出现 a)、b)、c)、d) 和 e) 可能出现. 假设它们都调用相同的函数但输入不同的参数。

    char choice;
int i;
while(true)
{
            // This increments from char 'a' onward to 'b', 'c', 'd', etc.
    for (i = 0; i < number; i++){
            char character = 'a';
            cout << static_cast<char>(character + i) << ") list of choices" << endl;
    }

    cin >> choice;

    switch(choice) {

                    // Same incremental principal to achieve variable cases
        for (i = 0; i < number; i++){
                char character = 'a';
                character = (static_cast<char>(character + i) );

        case character: carryOutJob(argumentDependantOnCharacter);
        }
            }
    }

如果我运行与此类似的代码,我会得到看起来有点像这样的错误:

: error: ‘character’ cannot appear in a constant-expression
: error: jump to case label [-fpermissive]
: error:   crosses initialization of ‘char character’
: error: expected ‘;’ before ‘}’ token
 Error 1
4

2 回答 2

1

C++ 规则说case表达式必须是常量,因此编译器可以在编译时为其创建代码,除此之外,如果您一次检查一个字符,为什么不使用if?

于 2012-10-14T00:33:59.557 回答
0

此外,据我所知,在 c++ 中,您不能将 switch 语句 case 标签设为字符串。我前段时间在学校作业中尝试过这个,但遇到了很多麻烦。

于 2012-10-14T02:48:50.420 回答