我试图在处理中使用“枚举”,以便在“开关盒”陈述中使用它。
我正在处理3.3.6。 我将“枚举”语句放置在名为“ Status.java”的新选项卡中。 我在主选项卡的enum iteslf上声明了。 我无法初始化用值创建的枚举。
这是我的代码:
“ Satus.java”标签:
enum State {A,B,C};
“主要”标签:
State state1=A;
void setup()
{
}
void draw()
{
println(state1);
switch (state1)
{
case A:
println("A");
case B:
println("B");
case C:
println("C");
}
}
答案 0 :(得分:0)
首先,您需要告诉状态选项卡它是一个类:
static class status {
enum State {A,B,C};
}
在处理过程中,您将需要使用静态类令牌,而不是像Java中那样使用公共类。
目前, main 类不知道什么是 State 对象。因此,处理无法解析/初始化变量 state1 。
告诉它在 status 类中查找类型,如下所示:
Status.State state1 = Status.State.A;
最后,不要忘了在switch语句的每种情况之后添加 break; ,否则A的匹配项也会打印B和C(switch语句掉线)。
switch (state1) {
case A :
println("A");
break;
case B :
println("B");
break;
case C :
println("C");
break;
}
答案 1 :(得分:0)
分配变量时,您可能想显式访问State.A。 例如。
State state1=State.A;
代替
State state1=A;
,请记住使用break语句,否则将遇到所有情况。 这是您在单个草图文件中的代码的基本版本:
enum State {A,B,C};
State state1=State.A;
void setup()
{
}
void draw()
{
println("state1",state1);
switch (state1)
{
case A:
println("A");
break;
case B:
println("B");
break;
case C:
println("C");
break;
default:
println("default: undefined state");
break;
}
}