我基于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 18:37:47 浏览: 17
这个错误通常是由于在一个 `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` 语句。
声明一个Person类 里面有一个属性 性别 用枚举实现
好的,以下是一个简单的示例代码:
```java
public class Person {
enum Gender {
MALE,
FEMALE
}
private Gender gender;
public Person(Gender gender) {
this.gender = gender;
}
// 省略其他属性和方法
}
```
在上面的代码中,我们声明了一个 `Person` 类,并在其中定义了一个 `Gender` 枚举类型,包含两个枚举值 `MALE` 和 `FEMALE`。然后我们在 `Person` 类中声明了一个 `gender` 属性,类型为 `Gender`,并在构造方法中初始化了它。这样我们就可以通过创建 `Person` 对象并传入相应的 `Gender` 枚举值来设置这个人的性别了。