C++ 开关 () 错误

标签 c++ switch-statement

我一直在开发一个使用 switch() 函数的项目,如下所示:

switch (selectedMenu) {
    case 1:
        switch (selectedIndex) {
            case 0:
                invisibility = !invisibility;
                break;
            case 1:
                invincibility = !invincibility;
                break;
            case 2:
                superjump = !superjump;
                break;
            case 3:
                //Option 4
                break;
            case 4:
                //Option 5
                break;
        }
    case 2:
        switch (selectedIndex) {
            case 0:
                //Option 2
                break;
            case 1:
                //Option 2
                break;
            case 2:
                //Option 3
                break;
            case 3:
                //Option 4
                break;
            case 4:
                //Option 5
                break;
        }
    case 3:
        switch (selectedIndex) {
            case 0:
                //Option 2
                break;
            case 1:
                //
                break;
            case 2:
                //Option 3
                break;
            case 3:
                //Option 4
                break;
            case 4:
                //Option 5
                break;
        }
    case 4:
        switch (selectedIndex) {
            case 0:
                //Option 2
                break;
            case 1:
                //Option 2
                break;
            case 2:
                //Option 3
                break;
            case 3:
                //Option 4
                break;
            case 4:
                //Option 5
                break;
        }
    case 5:
        switch (selectedIndex) {
            case 0:
                //Option 2
                break;
            case 1:
                SET_ENTITY_COORDS(pedID, -75.015, -818.215, 326.176);
                break;
            case 2:
                //Option 3
                break;
            case 3:
                //Option 4
                break;
            case 4:
                //Option 5
                break;
        }
}

我的代码遇到了一个错误。

问题

case 5 -> case 1 中有这一行:SET_ENTITY_COORDS(pedID, -75.015, -818.215, 326.176); 应该将一个实体传送到某个位置.当我在这个传送案例上面的任何案例中使用一个选项时,它也会传送实体,即使它不是在这种情况下。

很难解释,所以让我们画一张图:

enter image description here

我该如何调整它,让它只启用我在案例中指定的功能,而不启用它上面的所有功能?

(我该如何调整它,使其只启用 super 跳跃,而不是同时启用 super 跳跃和传送用户?)

最佳答案

您的外部 switch 案例需要 break 语句:

switch (selectedMenu) {
    case 1:
        switch (selectedIndex) {
            // blah, blah, blah...
        }
        break;      // <-- this
    case 2:
        switch (selectedIndex) {
            // blah, blah, blah...
        }
        break;      // <-- this
    case 3:
        switch (selectedIndex) {
            // blah, blah, blah...
        }
        break;      // <-- this
    case 4:
        switch (selectedIndex) {
            // blah, blah, blah...
        }
        break;      // <-- this
    case 5:
        switch (selectedIndex) {
            // blah, blah, blah...
        }
        break;      // <-- this
}

关于C++ 开关 () 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48593216/

相关文章:

java - 模式匹配开关是否需要在 Java 中始终详尽无遗?

c++ - hash_set : hash_set does not name a type 问题

c++ - 如何多次锁定互斥锁?

c++ - 从 PCL 样本共识中获取异常值

c++ - 在 linux 下的 c++ 程序中包含 amp.h 库

c++ - 使用初始化程序列表时,缩小转换范围是什么?

ios - 不确定如何避免 Swift switch 的默认语句中出现垃圾

c - switch语句中的变量定义

Delphi:CoolBar的切换频段

regex - switch/case 语句