我基于Qt开发程序, 有一个自定义枚举, enum NAME{A,B,C}, 声明一个 NAME Person, 后面有一个Switch语句为 switch(Person){case A:break;Case B:break;Case C:break;} 报错cannot jump from switch statement to this case label , 什么原因
时间: 2024-03-22 07:37:47 浏览: 70
这个错误通常是由于在一个 `case` 标签后面紧跟着另一个 `case` 标签或者 `default` 标签,而没有在中间加上任何语句,导致编译器无法区分这两个标签的位置。
在您的代码中,由于每个 `case` 标签都没有任何语句,所以编译器无法区分它们的位置,从而报错。
为了解决这个问题,您可以在每个 `case` 标签后面加上一个语句,例如:
```cpp
switch (Person) {
case A:
qDebug() << "Person is A";
break;
case B:
qDebug() << "Person is B";
break;
case C:
qDebug() << "Person is C";
break;
}
```
这样就可以避免这个错误了。
相关问题
我基于Qt开发程序, 有一个自定义枚举, enum NAME{A,B,C}, 声明一个 NAME Person, 后面有一个Switch语句为 switch(Persion){case A:break;Case B:break;Case C:break;}
在您的代码中,有一个小错误:您声明了一个变量 `Person`,而在 `switch` 语句中使用的是 `Persion`,应该将 `Persion` 改为 `Person` 才能正确编译。
除此之外,您的代码是正确的。`switch` 语句根据变量 `Person` 的值来执行相应的分支,当 `Person` 的值为 `A` 时,执行第一个分支;当 `Person` 的值为 `B` 时,执行第二个分支;当 `Person` 的值为 `C` 时,执行第三个分支。如果 `Person` 的值不是 `A`、`B` 或 `C` 中的任意一个,那么就不会执行任何分支,直接跳过 `switch` 语句。
ue5 如何自定义枚举类型
在UE5中,自定义枚举类型的步骤如下:
1. 在需要使用自定义枚举类型的地方(例如C++文件或蓝图中),定义一个枚举类型,例如:
```
UENUM(BlueprintType)
enum class EMyEnum : uint8
{
OptionA UMETA(DisplayName = "Option A"),
OptionB UMETA(DisplayName = "Option B"),
OptionC UMETA(DisplayName = "Option C")
};
```
上面的代码定义了一个名为EMyEnum的枚举类型,包含三个选项:OptionA、OptionB和OptionC。每个选项都有一个UMETA宏指定了它们在编辑器中显示的名称。
2. 在需要使用自定义枚举类型的地方,例如类中的成员变量,使用定义好的枚举类型,例如:
```
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "My Category")
EMyEnum MyEnumVariable;
```
上面的代码定义了一个名为MyEnumVariable的变量,它的类型是EMyEnum。
通过这样定义,你就可以在C++代码和蓝图中使用自定义枚举类型了。
阅读全文